【问题标题】:Django - Getting contact permission from usersDjango - 从用户那里获取联系权限
【发布时间】:2019-03-13 14:10:29
【问题描述】:

在我的注册表单上,我询问用户是否可以通过电子邮件或短信与他们联系。

我正在使用 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)

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

【问题讨论】:

    标签: django django-views django-allauth


    【解决方案1】:

    事实证明,覆盖表单非常简单:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-22
      • 1970-01-01
      • 2020-08-15
      • 1970-01-01
      • 1970-01-01
      • 2019-03-06
      • 2023-03-21
      • 1970-01-01
      相关资源
      最近更新 更多