Django - получение синтаксической ошибки в общих представлениях класса - PullRequest
0 голосов
/ 05 января 2019

Сейчас я изучаю джанго и изучаю документацию. И когда я пытаюсь использовать общие представления, это дает мне исключение:

  File "/home/jeffr/Рабочий стол/codetry/mysite1/polls/views.py", line 8
     def IndexView(generic.ListView):
                          ^
  SyntaxError: invalid syntax

Это мои views.py:

    from django.views import generic

    from .models import Choice, Question

    def IndexView(generic.ListView):
        template_name = 'polls/index.html'
         contest_object_name = 'latest_question_list'

    get_queryset(self):
        """Return the last five published questions"""
        return Question.objects.order_by('-pub_date')[:5]

    def DetailView(generic.DetailView):
        model = Question
        template_name = 'polls/detail.html'

Полная паста трассировки может быть найдена здесь: http://dpaste.com/3QMN3A0

Любая помощь будет принята с благодарностью, спасибо

1 Ответ

0 голосов
/ 05 января 2019

Ключевое слово def означает, что вы реализуете функцию . Но здесь вы указываете не функцию, а класс . Вы определяете класс с помощью ключевого слова class, например:

from django.views import generic

from .models import Choice, Question

<b>class</b> IndexView(generic.ListView):
    template_name = 'polls/index.html'
     contest_object_name = 'latest_question_list'

    <b>def</b> get_queryset(self):
        """Return the last five published questions"""
        return Question.objects.order_by('-pub_date')[:5]

<b>class</b> DetailView(generic.DetailView):
    model = Question
    template_name = 'polls/detail.html'

Это вызывает ошибку, поскольку функции могут принимать параметры, но имена параметров не могут содержать точек.

Вы также забыли использовать def для определения метода get_queryset.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...