Template:
<form action="{% url 'new_item' category=category %}" method="post"> Urly:
url(r'^new/(?P<category>[\w\-]+)/$', views.new_item, name='new_item'), Representation:
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) And for a normal link, such a code works, but for a form there is no
<a href="{% url 'new_item' category=category %}"></a> Mistake:
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 \ -] +) / $']