【问题标题】:Django - missing 1 required positional argument: '_id'Django - 缺少 1 个必需的位置参数:'_id'
【发布时间】:2021-07-29 08:33:16
【问题描述】:

我遇到了一个错误

BlogDetailView() 缺少 1 个必需的位置参数:'_id'

当我试图访问BlogDetailView功能时。

views.py:

from django.http.response import Http404
from .models import BlogModel,CommentModel
from .forms import SearchForm,CommentForm
from django.shortcuts import render,redirect

def BlogDetailView(request,_id):
try:
    data = BlogModel.objects.get(id = _id)
    comments = CommentModel.objects.filter(blog = data)
except BlogModel.DoesNotExist:
    raise Http404('Data does not exist')
 
if request.method == 'POST':
    form = CommentForm(request.POST)
    if form.is_valid():
        Comment = CommentModel(your_name= form.cleaned_data['your_name'],
        comment_text=form.cleaned_data['comment_text'],
        blog=data)
        Comment.save()
        return redirect(f'/blog/{_id}')
else:
    form = CommentForm()

context = {
        'data': data,
        'form': form,
        'comments': comments,
    }
return render(request,'Test_one/detailview.html',context)

urls.py:

from django.conf.urls import url
from django.urls.conf import path
from blogapp.views import BlogDetailView, BlogListView
from . import views

app_name = "Blogapp"

urlpatterns = [
url(r'^blogs/', views.BlogDetailView, name="blogs"),
url(r'^blog/<int:_id>', views.BlogListView, name="blog"),
]

谁能解决这个问题?

【问题讨论】:

  • 也许:url(r'^blogs/<_id>', views.BlogDetailView, name="blogs"),
  • 分享您链接到 url 的模板中的代码。
  • 博客详细视图需要一个缺少的参数 id,可能是因为它最初没有设置,或者您传递的对象不存在...尝试打印出该值以确保...
  • 请不要使用_id,只需使用idpk

标签: django django-views


【解决方案1】:

我认为你写错了代码,从逻辑上讲,博客列表不需要 id 来获取(你想要所有博客文章,所以可能不需要 id),你需要获取特定的博客文章,所以你需要一个 id来取这个。所以我认为这是您尝试编写的正确代码:

from django.conf.urls import url
from django.urls.conf import path
from blogapp.views import BlogDetailView, BlogListView
from . import views

app_name = "Blogapp"

urlpatterns = [
    url(r'^blogs/<int:_id>', views.BlogDetailView, name="blogs"),
    url(r'^blog/', views.BlogListView, name="blog"),
]

【讨论】:

  • 我忘记了这两个的url是反的,views.py中也没有问题。谢谢!
猜你喜欢
  • 2018-06-20
  • 2017-10-20
  • 2018-01-24
  • 2019-05-27
  • 2015-07-08
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多