姜戈 2.2.代替我的模板 django 使用标准



我在django中创建了一个authapp应用程序。我在设置中注册了它并添加到主urls.py

from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('authapp/', include('authapp.urls', namespace='authapp')),
]

authapp/urls中.py我添加了:

from django.contrib.auth import views as auth_views
from django.urls import path, reverse_lazy
import authapp.views as authapp
app_name = 'authapp'
urlpatterns = [
path('password_change/', auth_views.PasswordChangeView.as_view(success_url=reverse_lazy('authapp:password_change_done')), name='password_change'),
path('password_change/done/', auth_views.PasswordChangeDoneView.as_view(), name='password_change_done'),
]

我将我的模板添加到身份验证/模板/注册:-
password_change_form.html
- password_change_done.html但是
当您单击链接 http://127.0.0.1:8000/authapp/password_change/我进入 django 管理员中的标准表单时,而不是我的表单......
我做错了什么?

问题解决了。
只需将身份验证应用程序放在标准管理应用程序上方即可 settings.py。

INSTALLED_APPS = [
...
'authapp',
'django.contrib.admin',
...
]

您必须在DIRS中指定模板目录,如以下代码片段所示:

TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [BASE_DIR + "/templates/registration/"],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
"django.template.context_processors.debug",
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
]
},
}
]

这应该在 settings.py 中配置。

请参阅:https://docs.djangoproject.com/en/2.2/topics/templates/#configuration

相关内容

  • 没有找到相关文章

最新更新