我试图在模板中构建一个包含两个变量的URL,但我只是得到了相同的错误消息。 我对Django很新,所以我需要你的帮助:)
Exception Type: NoReverseMatch
Exception Value: Reverse for 'skill_update' with arguments '()' and keyword
arguments '{u'instancepk': 1, u'skillpk': 15}' not found. 1 pattern(s)
tried: [u'persomaker/skill/update/(?P<skillpk>[0-9]+)$/(?P<instancepk>[0-9]+)$']
模板:
{% url 'persomaker:skill_update' skillpk=item.pk instancepk=instance.pk %}
view.py:
def skill_update(request,skillpk,instancepk):
form = SkillCreateForm(request.POST)
user = User.objects.get (id = request.user.id)
instance = Character.objects.get (id = instancepk)
if form.is_valid():
form.save()
return redirect('persomaker:skill_list', instance.id)
else:
skill = Skill.objects.get(id=pk)
form = SkillCreateForm(initial={'character':instance})
form.fields['skill'].widget = HiddenInput()
form.fields['level'].queryset = range(0,7)
form.fields['character'].widget = HiddenInput()
return render(request, 'character/create_skill.html',
{'instance':instance,
'form': form,})
url.py:
url(r'^skill/update/(?P<skillpk>[0-9]+)$/(?P<instancepk>[0-9]+)$',
views.skill_update, name='skill_update'),
答案 0 :(得分:5)
你的模式正则表达式中间有一个$
。那是终结角色;什么都不会匹配。删除中间的那个。
答案 1 :(得分:1)
您在URL配置中有2 $
。这不是一个有效的正则表达式,因为它假定换行符。