簡體   English   中英

如何在 django 應用程序中創建多個 urls.py?

[英]How do I create multiple urls.py in django app?

我想將 django 應用程序 url 拆分為兩個不同名稱的 url, urls.pyreset_urls.py 第一個, urls.py按預期工作,但第二個沒有。 我嘗試了顯而易見的方法,但似乎不起作用。 我希望reset_urls.py成為密碼重置的端點,但在創建后,它似乎不起作用。 我知道 django 允許在單個應用程序中重命名和擁有多個urls.py ,但我不確定應該如何完成,即使在檢查了文檔之后(不確定我是否檢查了正確的文檔)

這里是網址的源代碼:

網址配置:

from django.contrib import admin
from django.urls import path, include

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('', include('blog.urls', namespace='blog')),
    path('accounts/', include('users.urls', namespace='account')),
    path('accounts/reset', include('users.reset_urls')),
    path('admin/', admin.site.urls),
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

網址.py

按預期工作。 這里沒有問題。

from django.urls import path

from users import views
from django.contrib.auth import views as auth_views

app_name = 'account'
urlpatterns = [
    path('profile', views.profile, name='profile'),
    path('register', views.register, name='register'),
    path('login', auth_views.LoginView.as_view(template_name='users/login.html'), name='login'),
    path('logout', auth_views.LogoutView.as_view(template_name='users/logout.html'), name='logout'),
]

reset_urls.py

沒有按預期工作

from django.urls import path
from django.contrib.auth import views as auth_views


urlpatterns = [
    path('password_reset/', auth_views.PasswordResetView.as_view(template_name='users/account/password_reset.html'), 
        name='password_reset'),
    path('password_reset/done/', auth_views.PasswordResetDoneView.as_view(template_name='users/account/password_reset_done.html'), 
        name='password_reset_done'),
    path('password_reset_confirm/<uidb64>/<token>/', auth_views.PasswordResetView.as_view(template_name='users/account/password_reset.html'), 
        name='password_reset_confirm'),
    path('password_reset_complete/', auth_views.PasswordResetView.as_view(template_name='users/account/password_reset.html'), 
        name='password_reset_complete'),
]

在 app 目錄中創建一個包含__init__.pyurls文件夾。 然后根據需要將您的網址分成 urls 文件夾中的幾個文件。

__init__.py導入您的網址,例如:

from .reset_urls import urlpatterns_reset
from .normal_urls import urlpatterns_normal

urlpatterns = urlpatterns_normal + urlpatterns_reset

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM