DetailView 缺少 QuerySet 错误。它不应该与主键一起使用吗?
DetailView is missing a QuerySet Error. shouldnt it work with the primary key?
这个超级棒的 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',)
错误:
ImproperlyConfigured at /angebot/1/
DetailView is missing a QuerySet. Define DetailView.model, DetailView.queryset, or override DetailView.get_queryset().
Request Method: GET
Request URL: http://127.0.0.1:8000/angebot/1/
Django Version: 3.0.8
Exception Type: ImproperlyConfigured
Exception Value:
DetailView is missing a QuerySet. Define DetailView.model, DetailView.queryset, or override DetailView.get_queryset().
Exception Location: C:\Users\berni\PycharmProjects\django_project\venv\lib\site-packages\django\views\generic\detail.py in get_queryset, line 73
Python Executable: C:\Users\berni\PycharmProjects\django_project\venv\Scripts\python.exe
Python Version: 3.7.7
Python Path:
['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']
Server time: Fri, 27 Nov 2020 08:19:51 +0000
我一直在寻找,但找不到错误。
据我所知,问题出在您的 URL 模式中。 angebot-detail 的 URL 指向实际的 DetailView
而不是您在 views.py 文件中定义的 TestkundeDetailView
.
您应该将 angebot-detail url 更新为以下内容:
urlpatterns = [
...
path('<int:pk>/', angebot_views.TestkundeDetailView.as_view(), name='angebot-detail'),
]
别忘了在顶部导入您的 TestkundeDetailView
。
这个超级棒的 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',)
错误:
ImproperlyConfigured at /angebot/1/ DetailView is missing a QuerySet. Define DetailView.model, DetailView.queryset, or override DetailView.get_queryset(). Request Method: GET Request URL: http://127.0.0.1:8000/angebot/1/ Django Version: 3.0.8 Exception Type: ImproperlyConfigured Exception Value:
DetailView is missing a QuerySet. Define DetailView.model, DetailView.queryset, or override DetailView.get_queryset(). Exception Location: C:\Users\berni\PycharmProjects\django_project\venv\lib\site-packages\django\views\generic\detail.py in get_queryset, line 73 Python Executable: C:\Users\berni\PycharmProjects\django_project\venv\Scripts\python.exe Python Version: 3.7.7 Python Path:
['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'] Server time: Fri, 27 Nov 2020 08:19:51 +0000
我一直在寻找,但找不到错误。
据我所知,问题出在您的 URL 模式中。 angebot-detail 的 URL 指向实际的 DetailView
而不是您在 views.py 文件中定义的 TestkundeDetailView
.
您应该将 angebot-detail url 更新为以下内容:
urlpatterns = [
...
path('<int:pk>/', angebot_views.TestkundeDetailView.as_view(), name='angebot-detail'),
]
别忘了在顶部导入您的 TestkundeDetailView
。