django身份验证系统中的良好做法

时间:2019-10-12 16:59:55

标签: python django django-models django-templates

添加auth应用程序(django.contrib.auth.urls)的身份验证URL时,我有一个问题。

我应该在哪里添加模板? ({login.html等)

我已经看到它们添加到项目的templates文件夹中:

project > templates > registration > login.html ...

我还看到他们在名为registration的应用程序中做到了:

|-- project
    |-- registration
        |-- templates
        |   |-- registration
        |       |-- login.html
        |           ....
        |
        |-- __init__.py
        |-- admin.py
            .....

但是这个名字并不能说服我,我还看到他们在名为usersaccounts的应用程序中做到了

我应该在哪个应用程序中进行操作? (accountsusersregistration

哪个是最佳实践?

我还想评论一下我正在创建一个自定义用户模型,我认为它应该在这些应用程序之一中使用对吗?根据应用程序的名称,这将是最合乎逻辑的。

1 个答案:

答案 0 :(得分:0)

如果要创建自定义用户应用程序,则可以将帐户模板放在project / your_user_app / templates / registration中。在这种情况下,your_user_app必须位于settings.py中INSTALLED_APPS的顶部。

在settings.py

INSTALLED_APPS = [
    'your_user_app',
    'django.contrib.admin',
    'django.contrib.auth',
     ...  
     ...
]


AUTH_USER_MODEL = 'your_user_app.your_custom_user_model'


TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
         ...
    },
]

或者您可以将帐户模板放在项目/模板/注册中,然后在settings.py中编辑DIRS:

TEMPLATES = [
    {
        ...

        'DIRS': [
            os.path.join(BASE_DIR, 'templates')
        ],

        ...
    },
]

如果您没有自定义用户应用,而只想自定义模板,那么第二个选项也可以使用。