在Django中编辑表单

时间:2012-07-05 04:13:51

标签: django django-forms

我在我的应用程序中创建了一个表单,我可以在其中详细介绍一个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',参数'()'和关键字参数'{}'未找到

似乎无法解决此错误。需要一些帮助...

1 个答案:

答案 0 :(得分:1)

在你的POST处理中,反向应该传递URL名称而不是模式。所以无论你给这个网址提供什么名字,都要更正。

redirect_url = reverse('lexus/lexusedited.html') <----- Incorrect.

如果您的网址名称为'lexusedited'

redirect_url = reverse('lexusedited')

提示:您可以直接执行:

return HttpResponseRedirect(reverse('lexusedited'))