В DetailView отсутствует ошибка набора запросов. разве он не должен работать с первичным ключом?

#python #django #web-applications #detailview #django-class-based-views

#питон #джанго #веб-приложения #подробный обзор #django-class-based-views

Вопрос:

Совершенно новый для этой супер приятной вещи django. Стараюсь изо всех сил…

попытка http://127.0.0.1:8000/angebot/1 / в моем браузере предполагается показать мне набор запросов с первичным ключом 1 из model Testkunde

нужно ли мне определять набор запросов в detailview?? обычно с model = 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 отсутствует набор запросов. Определите DetailView.model, DetailView.queryset или переопределите DetailView.get_queryset() . Метод запроса: ПОЛУЧИТЬ URL-адрес запроса: http://127.0.0.1:8000/angebot/1 / Версия Django: 3.0.8 Тип исключения: неправильно сконфигурированное значение исключения:
в DetailView отсутствует набор запросов. Определите DetailView.model, DetailView.queryset или переопределите DetailView.get_queryset() . Расположение исключения: C:UsersberniPycharmProjectsdjango_projectvenvlibsite-packagesdjangoviewsgenericdetail.py в get_queryset строка 73 исполняемого файла Python: C:UsersberniPycharmProjectsdjango_projectvenvScriptspython.exe Версия Python: 3.7.7 Путь к Python:
[‘C:UsersberniPycharmProjectsdjango_projectdjango_project ‘, ‘C:UsersberniAppDataLocalProgramsPythonPython37python37.zip ‘, ‘C:UsersberniAppDataLocalProgramsPythonPython37DLLs ‘, ‘C:UsersberniAppDataLocalProgramsPythonPython37lib ‘, ‘C:UsersberniAppDataLocalProgramsPythonPython37 ‘, ‘C:UsersberniPycharmProjectsdjango_projectvenv ‘, ‘C:UsersberniPycharmProjectsdjango_projectvenvlibsite-packages ‘] Серверное время: Пт, 27 нояб. 2020 г. 08:19:51 0000

Я искал, но не могу найти ошибку.

Ответ №1:

Из того, что я вижу, проблема в вашем шаблоне URLs. Ваш URL-адрес для angebot-detail указывает на фактический DetailView , а не на ваш TestkundeDetailView , который вы определили в своем views.py досье.

Вам следует обновить URL-адрес angebot-detail следующим образом:

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

Не забудьте импортировать свои TestkundeDetailView данные вверху.

Комментарии:

1. Себастьян, большое спасибо. Это решило мою проблему. Для меня это большая проблема… может быть, и для других?? Всего лишь небольшая опечатка / ошибка разрушает все. Я думаю, мне нужно научиться правильно отлаживать эту штуку django…