のためのユーザーフォームの拡張、この中で説明するように、私はSO投稿私のユーザーモデルを拡張: Extending the User model with custom fields in Djangoカスタムユーザー
しかし、私はフォームを作成し、ユーザーを作成しようとしているが、私は以下の取得:
は、「メンバーのオブジェクトには、属性 'set_password'
ここに私のモデルの形で持っていません。
class Members(models.Model):
user = models.OneToOneField(User)
GENDER_CHOICES = (...)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
date_of_birth = models.DateField()
class Meta:
db_table='members'
def create_user_profile(sender, instance, created, **kwargs):
if created:
Members.objects.create(user=instance)
post_save.connect(create_user_profile, sender=User)
....と私のフォームを....
class SignUpForm(UserCreationForm):
GENDER_CHOICES = (...)
email = forms.EmailField(label='Email address', max_length=75)
first_name = forms.CharField(label='First Name')
last_name = forms.CharField(label='Last Name')
gender = forms.ChoiceField(widget=RadioSelect, choices=GENDER_CHOICES)
date_of_birth = forms.DateField(initial=datetime.date.today)
class Meta:
model = Members
fields = ('username', 'email','first_name', 'last_name')
あなたのUser
モデルは(あなたがMember
呼ばれてきた)UserProfile
を作成することである延長することを選んだおかげで、事前
お返事ありがとうございます。フォームオブジェクトの保存パラメータをオーバーライドするか、user.get_profile()を実行して新しいuserprofileオブジェクトを保存しますか? (私はメンバーをUserProfileに改名しました) – Paul
[SOの質問](http://stackoverflow.com/questions/1727564/how-to-create-a-userprofile-form-in-django-with- first-name-last -name-modificati)があなたを助けてくれるかもしれません。その解決策は '' save() ''をオーバーライドします。私はUserProfileを使用しなければならないことは一度も書いていません(すべてのプロジェクトでUserクラスが拡張されています)。私はあまりにもあなたを助けることはできません。 –
get_profileはdjango 1.5から廃止され、1.7で削除されました。 – brunch875