我自定义了此问题中建议的用户个人资料:How to customize user profile when using django-allauth
所以基本上我的代码看起来像这样:
在forms.py中:
class SignupForm(forms.Form):
first_name = forms.CharField(max_length=30, label=_("First Name"))
last_name = forms.CharField(max_length=30, label=_("Last Name"))
def save(self, user):
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
user.save()
在settings.py中:
ACCOUNT_SIGNUP_FORM_CLASS = 'core.forms.SignupForm'
代码工作正常,我在注册表单中获得了包含名字和姓氏的完整表单,但是我收到以下警告:
DeprecationWarning: The custom signup form must offer a def signup(self, request, user) method DeprecationWarning)
问题:为解决此警告,我应该如何处理def signup(self, request, user) method
?
谢谢!
答案 0 :(得分:1)
如docs中所述,弃用警告支持def signup(self, request, user)
:
以前,在自定义注册表单上调用了save(用户)。 但是,如果是模型表单,这会影响现有的save方法 被使用了。为避免混淆,已弃用save方法 赞成def注册(请求,用户)方法。
所以只需实现该方法即可。并且def save()
def signup()
def save()
执行你曾经做过的事情。不需要def signup(self, request, user):
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
user.save()
。
{{1}}