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)

于 2012-10-07T18:03:50.307 に答える