Django NoReverseMatch в / с аргументами '(' ',)' - PullRequest
0 голосов
/ 04 августа 2020

У меня есть:

path('new/', views.new, name='new_without_arg'),
path('new/<str:arg>', views.new_with_arg, name='new_with_arg')

в моем urls.py, а когда у меня есть 'new_with_arg' в шаблоне:

<a href="{% url 'new_with_arg' subject %}">New Subject</a>

Я получаю:

Реверс для 'new_with_arg' с аргументами '(' ',)' не найден. Пробовал 1 шаблон (ы): ['new / (? P [^ /] +) $']

Мой views.py:


def new(request):
    return render(request, 'notes/new.html')

def new_with_arg(request, arg):

    if(arg == 'task'):
        return render(request, 'notes/new_task.html')

    elif(arg == 'room'):
        return render(request, 'notes/new_room.html')

    elif(arg == 'subject'):
        return render(request, 'notes/new_subject.html')
    
    else:
        return HttpResponseRedirect(reverse('new_without_arg'))

Ответы [ 2 ]

0 голосов
/ 04 августа 2020

Понял, должно было быть:

<a href="{% url 'new_with_arg' 'subject' %}">New Subject</a>

0 голосов
/ 04 августа 2020

Вы передаете предметную переменную из views.py в html файл?

...