Я пытаюсь получить ввод, чтобы появиться на моей странице, и слежу за пошаговым руководством Макса Гудриджа, эпизод 45, но, похоже, застрял в этом конкретном разделе. Если бы кто-нибудь мог помочь, это было бы огромной помощью.
Мой urls.py:
url(r'^bandlist/$', polls_views.bandlist, name='bandlist'),
url(r'^bandlist/(\d+)/$', polls_views.BandView.as_view(), name='bandview'),
Мой views.py
def bandlist(request):
query = Band.objects.order_by('bandname')
args = {'query': query}
return render(request, 'bandlist.html', args)
class BandView(TemplateView):
template_name = 'bandview.html'
def get(self, request):
form = BandForm()
return render(request, self.template_name, {'form': form})
Мои формы.py
class BandForm(forms.Form):
post = forms.CharField()
И шаблон (band.html)
{% extends 'bbase.html' %}
{% block content %}
<h1>{{ band.bandname }}</h1>
<h5>Total Ratings: {{ band.totalrating }}</h5>
<h5>How many times have {{band.bandname}} been rated: {{ band.totalrated }}</h5>
<h5>Average rating (Out of 5): </h5>
<form method = "post">
{{ form.as_p }}
<input type = "submit" value = "Score" />
</form>
{% endblock %}
После этого я попытаюсь внедрить систему оценки и обзора для каждой группы. Если бы кто-нибудь мог дать совет и по этому поводу, я был бы очень признателен.
Обновлено: Вот полная трассировка:
Internal Server Error: /bandlist/1/
Traceback (most recent call last):
File "C:\Users\Ethan\Envs\OnNote\lib\site-packages\django\core\handlers\exception.py", line 41, in inner
response = get_response(request)
File "C:\Users\Ethan\Envs\OnNote\lib\site-packages\django\core\handlers\base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Users\Ethan\Envs\OnNote\lib\site-packages\django\core\handlers\base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Ethan\Envs\OnNote\lib\site-packages\django\views\generic\base.py", line 68, in view
return self.dispatch(request, *args, **kwargs)
File "C:\Users\Ethan\Envs\OnNote\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
return handler(request, *args, **kwargs)
TypeError: get() takes 2 positional arguments but 3 were given
Не могли бы вы опубликовать полученную трассировку?
Уилл, я только что обновился






В вашей реализации метода get() отсутствует аргумент.
Первая проверка с классом предка TemplateView
https://docs.djangoproject.com/en/2.0/ref/class-based-views/base/#django.views.generic.base.TemplateView
Увеличьте масштаб, чтобы увидеть точную реализацию метода get()https://docs.djangoproject.com/en/2.0/ref/class-based-views/base/#django.views.generic.base.View
def get(self, request, *args, **kwargs):
return HttpResponse('Hello, World!')
Так что мне нужно изменить?
Ваш метод get().
Можете ли вы немного расширить, я не очень понимаю
@EthanPearce Нет проблем. Добавьте *args and **kwargs в свой метод get()
Очевидно, что
as_view()получил больше аргументов, чем ожидалось. Если вы звоните вdetail, но случайно перенаправляетесь наlist. Такое исключение будет возбуждено.