我在我的应用程序中创建了一个表单,我可以在其中详细介绍一个suer。现在我想创建一个允许我编辑表单的表单。
我的urls.py:
url(r'^home/editform/(?P<userpk>[^/]+)/$', 'lexuseditform', name='lexuseditform'),)
我的view.py:
@login_required
def lexuseditform(request,userpk):
if int(userpk) != request.user.pk:
return HttpResponseForbidden()
else:
form = AdultForm()
if request.method == 'POST': # If the form has been submitted...
form = AdultForm(request.POST) # A form bound to the POST data
if form.is_valid(): # All validation rules pass
form.save()
redirect_url = reverse('lexus/lexusedited.html')
return HttpResponseRedirect(redirect_url) # Redirect after POST
else:
form = AdultForm() # An unbound form
return render('lexus/lexuseditform.html', {'form': form})
我的models.py:
class AdultForm(ModelForm):
"""
Edit Profile Information
"""
class Meta:
model = Adult
fields = ('user', 'email','fullname','created')
但我收到错误信息: No ReverseMatch:反向'lexuseditform',参数'()'和关键字参数'{}'未找到
似乎无法解决此错误。需要一些帮助...
答案 0 :(得分:1)
在你的POST处理中,反向应该传递URL名称而不是模式。所以无论你给这个网址提供什么名字,都要更正。
redirect_url = reverse('lexus/lexusedited.html') <----- Incorrect.
如果您的网址名称为'lexusedited'
redirect_url = reverse('lexusedited')
提示:您可以直接执行:
return HttpResponseRedirect(reverse('lexusedited'))