Django-获得用户的联系许可

时间:2018-10-08 21:10:32

标签: django django-views django-allauth

在注册表格上,我询问用户是否可以通过电子邮件或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)

但是,它实际上并没有将结果保存给用户。我还需要对表格进行子类化吗?最简单的方法是什么?

1 个答案:

答案 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,以供参考。