Шаблон:
<form action="{% url 'new_item' category=category %}" method="post">
Урлы:
url(r'^new/(?P<category>[\w\-]+)/$', views.new_item, name='new_item'),
Представление:
def new_item(req, category=''):
args = dict()
args.update(csrf(req))
if req.method == 'POST':
if category == 'phone':
form = PhoneForm(req.POST, req.FILES)
if form.is_valid():
form.save()
return redirect('general')
else:
args['form'] = form
return render_to_response('new_item/index.html', args)
else:
if category == 'phone':
args['form'] = PhoneForm()
args['category'] = 'phone'
return render_to_response('new_item/index.html', args)
Причём для обычной ссылки подобный код срабатывает, а для form нет
<a href="{% url 'new_item' category=category %}"></a>
Ошибка:
NoReverseMatch at /adminpanel/new/phone/ Reverse for 'new_item' with arguments '()' and keyword arguments '{'category': ''}' not found. 1 pattern(s) tried: ['adminpanel/new/(?P[\w\-]+)/$']
На данный момент передаю в контекст url через reverse во въюшке, но хотелось бы понять.