воскресенье, 9 июля 2017 г.

TypeError __init__() takes 1 positional argument but 2 were given


В приложении на Django можно столкнуться с ошибкой при попытке просмотреть страницу:
TypeError at /1/results/ __init__() takes 1 positional argument but 2 were given

Причины могут быть разными, но если вы используете generic представления - ListView, DetailView, то проверьте, не забыли ли вы в urls.py добавить .as_view() к названию представления.

Файл представления polls/views.py:
# ...

class ResultsView(generic.DetailView):
    model = Question
    template_name = 'polls/results.html'


Файл polls/urls.py:
from django.conf.urls import url

from . import views

app_name = 'polls'

urlpatterns = [
    # /polls/123/results
    url(r'^(?P[0-9]+)/results/$', views.ResultsView.as_view(), name='results'),
    # ...
]

Если в этом файле вместо views.ResultsView.as_view() написать просто views.ResultsView, то возникнет ошибка: __init__() takes 1 positional argument but 2 were given

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

Отправить комментарий