我想創建一個註冊表單並創建一個用戶(模型)。如何使用元類創建註冊表單(ModelForm)作爲django.contrib.auth.models.User?
我對django很新,我不知道如何去做。 我已經寫了這個,但這似乎不工作。
class SignUpForm(forms.ModelForm):
confirm_password = forms.CharField(max_length=50)
class Meta:
model = User
fields = ['password', 'email', 'first_name', 'last_name']
def is_valid(self):
if super(SignUpForm, self).is_valid() and self.confirm_password == self.instance.password:
return True
else:
False
def save(self, commit=True):
if self.is_valid():
self.instance.objects.create_user(username=self.instance.email, email=self.instance.email,
password=self.instance.password, first_name=self.instance.first_name,
last_name=self.instance.last_name).save()
當我嘗試訪問confirm_password
它拋出AttributeError的 AttributeError: 'SignUpForm' object has no attribute 'confirm_password'
當我試圖accesss元類的其他屬性,如password
更過,email
,first_name
和last_name
使用self.instance
屬性它總是返回一個空字符串''
。任何人都可以請告訴我一個正確和有效的方法來創建一個註冊模型表單。 謝謝。
重用用戶創建表單,而不是編寫自己的表單是個好主意。根據您的要求,您可能會發現[django-registration](https://django-registration.readthedocs.org/en/2.0.3/)應用程序很有用。 – Alasdair