【发布时间】:2019-10-12 04:20:52
【问题描述】:
我的项目中有博客字段。我想将帖子 ID 发送到 views.py 告诉我我做错了什么
在 blog.html 中
<a href="{% url 'post-detail' post.id %}" class="btn btn-primary">Read
more</a>
在网址中:
path('post_detail/<int:pk>/', PostDetailView.as_view(), name='post-
detail')
在视图中:
class PostDetailView(DetailView):
model = Post
def get_queryset(self):
queryset = super().get_queryset()
search = self.request.GET.get('pk')
if search:
queryset = Post.objects.filter(page_id=search)
print(queryset)
else:
return queryset.none()
【问题讨论】:
-
DetailView没有get_queryset(我相信)。DetailView有get_object -
但是您实际上根本不需要在这里定义任何方法。从参数中获取对象是 DetailView 已经适合您的了。
-
对于 django 中基于类的视图,只需参考 Django class-based-view,这非常有帮助。您可以在视图中以
self.kwargs['pk']访问 url 参数。
标签: django django-models