【问题标题】:DetailView is missing a QuerySet Error. shouldnt it work with the primary key?DetailView 缺少 QuerySet 错误。它不应该与主键一起使用吗?
【发布时间】:2021-03-10 01:05:18
【问题描述】:

对这个超级棒的 django 东西很陌生。尽我所能...

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

我需要在细节视图中定义一个查询集吗? 通常与 型号=Testkunde 应该这样做??

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

views.py

class TestkundeDetailView(DetailView):
    model = Testkunde
    template_name = 'angebot/detail.html'
    context_object_name = 'testkunde_list'

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'),
]

models.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',)

错误:

在 /angebot/1/ 处配置不正确 DetailView 缺少 QuerySet。定义 DetailView.model、DetailView.queryset,或覆盖 DetailView.get_queryset()。 请求方法:GET 请求网址: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

我一直在搜索,但找不到错误。

【问题讨论】:

    标签: python django web-applications detailview django-class-based-views


    【解决方案1】:

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

    您应该将您的 angebot-detail 网址更新为以下内容:

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

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

    【讨论】:

    • 塞巴斯蒂安,非常感谢。这解决了我的问题。这对我来说是个大问题......也许对其他人来说也是如此?只是一个小错字/错误就毁了一切。我想我需要学习如何正确调试这个 django 东西......
    猜你喜欢
    • 2021-11-13
    • 2017-08-20
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 2014-05-27
    相关资源
    最近更新 更多