我使用自定義UserCreationForm創建新用戶,然後使用auth.views中的password_reset和自定義電子郵件模板向用戶發送註冊郵件。此過程工作正常,用戶能夠成功完成註冊過程並開始使用該應用程序。我現在想創建用戶而不必爲用戶設置密碼。我試圖在UserCreationForm初始化方法中設置self.fields ['password1']。required和self.fields ['password2']。Falke 建議使用here,但這並不適用於我。不幸的是,這很難調試。我沒有看到任何錯誤消息,但我知道RegistrationView註冊方法沒有被調用。Django無密碼創建新用戶
這裏是我的UserCreationForm
class UserCreateForm(UserCreationForm):
email = forms.EmailField(required=True)
class Meta:
model = User
fields = ("email",)
def __int__(self):
self.fields['password1'].required = False
self.fields['password2'].required = False
def save(self, commit=True):
user = super(UserCreateForm, self).save(commit=False)
clean_email = self.cleaned_data["email"]
user.email = clean_email
if commit:
user.save()
custom_user = CustomUser()
custom_user.id = user
custom_user.save()
return user
這裏是我的RegistrationView
class UserRegistration(RegistrationView):
def __init__(self):
self.form_class = UserCreateForm
self.success_url = 'login'
self.template_name = 'register.html'
def register(self, request, form):
new_user = form.save()
我使用Django 1.8。請讓我知道,如果有任何其他信息將有助於分享。
這個'RegistrationView'類來自哪裏?如果它是'FormView',那麼重載'form_invalid',添加'import pdb; pdb.set_trace()',並調試'form.errors'。我猜這是一個驗證的事情。 – grantmcconnaughey
此外,您的表單類重寫'__int__',而不是'__init__'。這可能是你的問題。 – grantmcconnaughey