【发布时间】: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,只需使用id或pk
标签: django django-views