禁用非管理员用户的一种语言

时间:2018-05-30 10:19:00

标签: python django url django-admin multilingual

我正在使用django 1.11,我想制作一种语言,只能为已登录的管理员访问 - 我的意思是法语版。

对于普通用户:

http://www.example.com/en

对于管理员用户:

http://www.example.com/en
http://www.example.com/fr

settings.py

LANGUAGES = (
    ('en', _('English')),
    ('fr', _('French')),
)

我在设置文件中知道:from django.contrib.auth.models import User,例如:

if User.is_staff:
    LANGUAGES = (
        ('en', _('English')),
        ('fr', _('French')),
    )
else:
    LANGUAGES = (
        ('en', _('English')),
    )

但是我收到了一个错误:

django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.
导入期间

from django.contrib.auth.models import User

1 个答案:

答案 0 :(得分:0)

这可能意味着您无法在设置完成导入/加载之前调用from django.contrib.auth.models import User

<击> 您可以尝试将if User.is_staff:移动到设置文件的末尾,但我不确定这是否也可以。

User.is_staff:不起作用,因为User是模型(类),而不是用户实例。您不能在设置中使用这种if,因为仅在您的请求/响应周期内定义了单个用户。

你必须寻找另一种方法,但我现在没有任何想法。