11

我注意到查看 django-allauth 模板时,有一个 signup_closed.html 用户可以在用户注册关闭或禁用时被重定向到。熟悉该模块的人是否知道是否有可以在 settings.py 中设置的预配置设置以通过现有社交应用程序关闭新用户注册?还是我需要自己配置?我已经阅读了 allauth 的完整文档,但没有看到任何提及。谢谢。

4

3 回答 3

13

看起来你需要覆盖is_open_for_signup你的适配器。

代码

于 2013-07-29T12:22:30.717 回答
5

更多信息请访问http://django-allauth.readthedocs.io/en/latest/advanced.html#custom-redirects

您需要子类allauth.account.adapter.DefaultAccountAdapter覆盖is_open_for_signup,然后设置ACCOUNT_ADAPTER为您的类settings.py

于 2018-03-05T01:58:37.507 回答
4

没有预先配置的设置,但很容易制作(这就是我所做的)。

# settings.py

# Point to custom account adapter.
ACCOUNT_ADAPTER = 'myproject.myapp.adapter.CustomAccountAdapter'

# A custom variable we created to tell the CustomAccountAdapter whether to
# allow signups.
ACCOUNT_ALLOW_SIGNUPS = False
# myapp/adapter.py

from django.conf import settings

from allauth.account.adapter import DefaultAccountAdapter


class CustomAccountAdapter(DefaultAccountAdapter):

    def is_open_for_signup(self, request):
        """
        Whether to allow sign ups.
        """
        allow_signups = super(
            CustomAccountAdapter, self).is_open_for_signup(request)
        # Override with setting, otherwise default to super.
        return getattr(settings, 'ACCOUNT_ALLOW_SIGNUPS', allow_signups)

这是灵活的,特别是如果您有多个环境(例如登台)并希望在登台中允许用户注册,然后再将其投入生产。

于 2020-08-13T17:13:52.993 回答