MyProject urls.py文件
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('HappyHomes/', include('HappyHomes.urls')),
path('HappyHomesAdmin/', include('HappyHomesAdmin.urls')),
]
HappyHomes urls.py文件
from django.urls import path
from HappyHomes import views
app_name = "HappyHomes"
urlpatterns = [
path('index/', views.index),
path('login/', views.login),
path('logincheck/', views.logincheck),
path('logout/', views.logout),
path('registration/', views.registration),
path('reg/', views.reg),
path('profile/', views.profile),
path('edit_profile/', views.edit_profile),
path('pg_hostel_showall/', views.pg_hostel_showall),
path('pg_hostel/', views.pg_hostel),
path('pg_hostel_booking/', views.pg_hostel_booking),
]
HappyHomesAdmin urls.py文件
from django.urls import path
from HappyHomesAdmin import views
app_name = "HappyHomesAdmin"
urlpatterns = [
path('index/', views.index, name="home"),
path('addnew/', views.addnew),
]
我的HappyHomes应用的views.py文件
def registration(request):
return render(request, 'registration.html')
def reg(request):
return HttpResponseRedirect(reverse('HappyHomesAdmin:home'))
此外,还有许多其他功能。他们都没有工作。我必须在URL中手动编写所有内容。
现在,如果我试图以这种方式从浏览器中的MyProject跳转到HappyHomes,[[http://127.0.0.1:8000/HappyHomes/它不会向我显示HappyHomes urls文件的功能。它显示了相同的结果。有2个应用程序和1个管理站点。因此,如果我写http://127.0.0.1:8000或http://127.0.0.1:8000/HappyHomes,则没有区别,因为它显示相同的结果。我不知道该怎么解决。
在您项目的urls.py中:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('', include('main.urls')),
path('app1/', include('app1.urls')),
path('app2/', include('app2.urls')),
path('app3/', include('app3.urls')),
path('admin/', admin.site.urls),
]
您必须在应用程序的urls.py文件中定义应用程序名称,例如:
from django.urls import path from . import views app_name = "app1" #example urlpatterns = [...]
在应用程序(例如app2)的views.py中,您可以:
from django.shortcuts import HttpResponseRedirect, reverse def example(request): return HttpResponseRedirect(reverse('app1:home'))