Django get () принимает ровно 2 аргумента (дано 3) - PullRequest
4 голосов
/ 26 апреля 2011

Я пытаюсь использовать универсальный класс DetailView в своем тестовом приложении, и это то, что я имею в виду

* обновленная модель * из этого примера

class AuthorDetailView(DetailView):

     context_object_name = "author"
     queryset = Author.objects.all()
     slug_field = "id"


    def get_object(self):
        object = super(AuthorDetailView, self).get_object()

        return object

в качестве теста

и в моем файле urls.py я получил

('^author/(\d+)/$', Author.AuthorDetailView.as_view()),

при переходе к http://localhost:8000/author/1 я получаю следующую ошибку

Ошибка Typer get () принимает ровно 2 аргумента (дано 3)

Traceback:
File "/Library/Python/2.6/site-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/Library/Python/2.6/site-packages/django/views/generic/base.py" in view
  47.             return self.dispatch(request, *args, **kwargs)
File "/Library/Python/2.6/site-packages/django/views/generic/base.py" in dispatch
  68.         return handler(request, *args, **kwargs)

Exception Type: TypeError at /author/1/
Exception Value: get() takes exactly 2 arguments (3 given)

Я не совсем понимаю, что происходит в base.py.

Ответы [ 2 ]

4 голосов
/ 26 апреля 2011

Попробуйте этот urlconf

from books.views import AuthorDetailView

urlpatterns = patterns('',
    #...
    (r'^authors/(?P<pk>\d+)/$', AuthorDetailView.as_view()),
)

и перейдите к:

http://localhost:8000/author/1/
0 голосов
/ 26 октября 2017

Я сделал следующие изменения, и это сработало.

Обновите панель инструментов отладки до 1.5 или уменьшите sqlparse до 0.1.x.

Источник: https://github.com/jazzband/django-debug-toolbar/issues/862 (Большое спасибо пользователю aaugustin из github)

...