gpt4 book ai didi

Django:DetailView 实现 get_queryset()

转载 作者:行者123 更新时间:2023-12-03 20:31:32 25 4
gpt4 key购买 nike

我收到以下错误:

ImproperlyConfigured at /elearning/7447932a-6044-498a-b902-97cbdd0a4001/
DetailView is missing a QuerySet. Define DetailView.model, DetailView.queryset, or override DetailView.get_queryset().

遵循 DetailView 上的 Django 文档get_query 不是强制性的,除非我想覆盖它。

查看.py
class CourseDetailView(DetailView):

model = Course
template_name='elearning/detail.html'

def get_object(self):
course = get_object_or_404(Course, pk=self.kwargs['pk'])
return self.model.objects.filter(pk=pk)

def get_context_data(self, **kwargs):
context = super(CourseDetailView, self).get_context_data(**kwargs)
context['now'] = timezone.now()
return context

网址.py
url(r'^(?P<pk>[0-9a-z-]+)/$', views.DetailView.as_view(), name='course-detail'),

ListView 模板
 <a href="{% url 'elearning:course-detail' article.course_id %}">{{ article.title }}</a>

模型.py
class Course(models.Model):
course_id = models.UUIDField(default=uuid.uuid4, editable=False)
...

我想知道为什么要实现 get_queryset()?

添加 get_queryset() 时仍然出现相同的错误
def get_queryset(self):
qs = super(CourseDetailView, self).get_queryset()
return qs.filter(pk=self.kwargs['pk'])

最佳答案

您的 View 名为 CourseDetailView但您正在使用 DetailView在网址中

url(r'^(?P<pk>[0-9a-z-]+)/$', views.DetailView.as_view(), name='course-detail'),

所以网址将是
url(r'^(?P<pk>[0-9a-z-]+)/$', views.CourseDetailView.as_view(), name='course-detail'),

关于Django:DetailView 实现 get_queryset(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45295771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com