在注册表格上,我询问用户是否可以通过电子邮件或SMS与他们联系。
我正在使用Django-Allauth,并且似乎没有将其列出为选项。我将视图子类化,并尝试将其潜入其中:
class ListenSignupView(SignupView):
template_name = 'listen_signup.html'
def form_valid(self, form):
form.allows_contact = self.request.POST.get('allows_contact')
return super(ListenSignupView, self).form_valid(form)
但是,它实际上并没有将结果保存给用户。我还需要对表格进行子类化吗?最简单的方法是什么?
答案 0 :(得分:0)
事实证明,覆盖表单非常简单:
from allauth.account.forms import SignupForm
class CustomSignupForm(SignupForm):
def save(self, request):
user = super(CustomSignupForm, self).save(request)
user_input = request.POST.get('allows_contact')
user.allows_contact = True if user_input == "on" else False
user.save()
return user
这可以对allauth的任何形式进行。 Here are the relevant docs,以供参考。