DetailView 缺少查询集错误。它不应该与主键一起使用吗?

Ber*_*ing 0 python django web-applications django-class-based-views detailview

对于这个超级好的 django 东西来说还是很新的。尽我最大努力...

在浏览器中尝试http://127.0.0.1:8000/angebot/1/应该会向我显示模型 Testkunde 中主键 1 的查询集

我需要在详细视图中定义查询集吗?通常使用 model = Testkunde 应该这样做?

非常感谢任何帮助!提前致谢!

视图.py

class TestkundeDetailView(DetailView):
    model = Testkunde
    template_name = 'angebot/detail.html'
    context_object_name = 'testkunde_list'
Run Code Online (Sandbox Code Playgroud)

urls.py

urlpatterns = [
    #path('', angebot_views.testkunde_list, name='testkunde_list'),
    path('', angebot_views.TestkundeListView.as_view(), name='angebot-list'),
    path('<int:pk>/', angebot_views.DetailView.as_view(), name='angebot-detail'),
]
Run Code Online (Sandbox Code Playgroud)

模型.py

class Testkunde(models.Model):
    auswahl = (
        ('Ausw1', 'Ausw2'),
        ('Ausw2', 'ausw2'),
        ('Ausw3', 'ausw3'),
    )

    vname = models.CharField(max_length=250,default='vname')
    nname = models.TextField(default='default')
    tel = models.CharField(max_length=250,default='0664')
    ausw = models.CharField(max_length=10,choices=auswahl,default="Ausw1")
    datum = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return self.vname

    def get_absolute_url(self):
        return reverse('angebot:testkunde_list',)
Run Code Online (Sandbox Code Playgroud)

错误:

/angebot/1/ DetailView 处的配置不正确缺少查询集。定义 DetailView.model、DetailView.queryset 或重写 DetailView.get_queryset()。请求方法:GET 请求 URL: http://127.0.0.1:8000 /angebot/1/ Django 版本:3.0.8 异常类型:配置不当 异常值:
DetailView 缺少 QuerySet。定义 DetailView.model、DetailView.queryset 或重写 DetailView.get_queryset()。异常位置: C:\Users\berni\PycharmProjects\django_project\venv\lib\site-packages\django\views\generic\detail.py 在 get_queryset,第 73 行 Python 可执行文件:C:\Users\berni\PycharmProjects\django_project\ venv\Scripts\python.exe Python 版本:3.7.7 Python 路径:
['C:\Users\berni\PycharmProjects\django_project\django_project', 'C:\Users\berni\AppData\Local\Programs\Python\Python37\ python37.zip', 'C:\Users\berni\AppData\Local\Programs\Python\Python37\DLLs', 'C:\Users\berni\AppData\Local\Programs\Python\Python37\lib', 'C: \Users\berni\AppData\Local\Programs\Python\Python37'、'C:\Users\berni\PycharmProjects\django_project\venv'、'C:\Users\berni\PycharmProjects\django_project\venv\lib\site-packages ']服务器时间:2020年11月27日星期五08:19:51 +0000

我一直在寻找但找不到错误。

小智 5

据我所知,问题出在您的 URL 模式中。angebot-detail的 URL指向实际的 URL DetailView,而不是您TestkundeDetailView在views.py 文件中定义的 URL。

您应该将angebot-detail url 更新为以下内容:

urlpatterns = [
    ...
    path('<int:pk>/', angebot_views.TestkundeDetailView.as_view(), name='angebot-detail'),
]
Run Code Online (Sandbox Code Playgroud)

TestkundeDetailView不要忘记在顶部导入您的。