1

我对似乎是一个简单的想法有点麻烦。

我有一个视图叫做register. 我希望该视图将用户带到我创建的注册表单。

def register(request):
    form = register()
    data = {}
    data.update(csrf(request))
    data.update({ 'form' : form })
    return render_to_response("register.html", data)


class register(forms.Form):
    rsb_first_name = forms.CharField(max_length = 25, required = True)
    rsb_last_name = forms.CharField(max_length = 25, required = True)
    rsb_company_name = forms.CharField(max_length = 25)
    rsb_address1 = forms.CharField(max_length = 50, required = True)
    rsb_address2 = forms.CharField(max_length = 50)
    rsb_city = forms.CharField(max_length = 50, required = True)
    rsb_zip_code = forms.CharField(max_length = 25, required = True)
    rsb_phone_number = USPhoneNumberField(label = "Phone", widget = USPhoneNumberMultiWidget(), required = True)
    rsb_email = forms.EmailField(required = True)

当我去/register/我收到以下错误:

register() takes exactly 1 argument (0 given)

它期待什么论据?

编辑1:

感谢 eakron,我能够看到我遇到了什么问题 - 现在我完全遇到了另一个问题。

因此,我重命名了我的视图registerUser,更改了urls.py文件以反映这一点,并将我的表单更改为RegisterForm.

现在我的看法很简单:

def registerUser(request):
    form = RegisterForm()
    data = {}
    data.update(csrf(request))
    data.update({ 'form' : form })
    return render_to_response("register.html", data)

我收到以下错误:

Could not import rsb.views.registerUser. View does not exist in module rsb.views.

想法?

4

1 回答 1

4

你的命名引起了冲突。Python 不知道您的意思是注册类还是注册函数,并且函数是“最接近的”。重命名一个(或以大写字母开头类的名称,无论如何这是规范)。

例如将其更改为

class Register(forms.Form)

ETC

于 2012-10-07T18:03:50.307 回答