У меня есть URL-адрес в моем шаблоне, который маршрутизируется следующим образом:
workoutcal/шаблоны/calendar.html:
<a href="{% url 'workoutcal:add' year=table.0 month=table.1 day=element.0 %}" class="add">Add workout</a>
workoutcal/urls.py:
url(r'^add/(?P<year>[0-9]+)/(?P<month>[0-9]+)/(?P<day>[0-9]+)/$', views.add, name = 'add'), #Adding a workout for the date in question.
workoutcal/views.py:
def add(request,year,month,day):
return HttpResponse("This is the add page")
Если я заменил add()
следующим образом:
def add(request):
return HttpResponse("This is the add page")
Я получаю сообщение об ошибке:
Traceback (most recent call last):
File "/Users/sahandzarrinkoub/Documents/Programming/Web/Django/workout/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/Users/sahandzarrinkoub/Documents/Programming/Web/Django/workout/lib/python3.6/site-packages/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File
"/Users/sahandzarrinkoub/Documents/Programming/Web/Django/workout/lib/python3.6/site-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
TypeError: add() got an unexpected keyword argument 'year'
Значение views.add
имеет неожиданный аргумент ключевого слова, отправленный ему. Скажем, что я хочу передать эти аргументы ключевого слова url
в calendar.html
потому что они необходимы для получения правильного URL-адреса, но я не хочу использовать эти аргументы в своем представлении. Есть ли способ исключить аргументы из определения функции представления без получения этой ошибки?
def add(request,year=None,month=None,day=None):
сделайте так, чтобы ваше представление функционировало так, как вам нужно передать аргумент в urlpatterns или он будет выходить из строя