2017-09-20 7 views
0

のフィールドを作りません: //forms.pyUserCreationFormの拡張子は、次のように私はUsercreationformを拡張してきたモデル

class UserCreationForm(UserCreationForm): 
    email = EmailField(label=_("Email address"), required=True, 
     help_text=_("Required.")) 
    city= forms.CharField(label= _("City"),max_length=20, required=True) 
    state= forms.CharField(label= _("State"),max_length=20, required=True) 

    class Meta: 
     model = User 
     fields = ("username", "email", "password1", "password2","city","state") 

    def save(self, commit=True): 
     user = super(UserCreationForm, self).save(commit=False) 
     user.email = self.cleaned_data["email"] 
     user.city = self.cleaned_data["city"] 
     user.state = self.cleaned_data["state"] 

     if commit: 
      user.save() 
     return user 

これは、フォームの一部まで正常に動作します。テンプレートにこれらのフィールドがすべて表示されますが、ここに問題があります。市、州などのように追加したフィールドはフォーム上に表示されていますが、User.cityやinbuilt以外のものをクエリすると、ユーザーに属性都市がないことがわかります...これはフィールドが存在しないことを意味します組み込みのUserモデルで作成されています...どうすればいいですか?

+0

こんにちは、このhttps://chriskief.com/2012/12/17/subclass-a-django-model-form-and-add-extra-fields/ – Robert

+0

でもご覧になれますdjangoを組み込みのcontrib-authを使用しないでください。 – Shefali

+0

組み込みのUserクラス*には都市フィールドはありません。なぜそれはすべきだと思いますか? –

答えて

0

よくある問題です。あなたのユーザーには完全なフォームがありますが、モデル(ユーザー)は完成していますか?したがって、実装する必要があるのは、(カスタムフィールドを追加するための)ユーザーモデルの拡張です。 How to Extend Django User Modelがお手伝いします..

+0

最後の部分で、ABSTRACTUSERを拡張したカスタムモードを使用してユーザモデルを拡張すると、forms.pyで何もする必要はありません。どのようにフォームが生成されますか? – Shefali

+0

実際には、フォームを「AbstractUser」にする必要があります。この場合、単純なモデルのフォームを使用することができます... – mcmartin

+0

あなたはあなたが言ったことをサポートするために少しコードを与えることができますか?私はここで少し困惑しています。 – Shefali

関連する問題