Python 名称空间有问题。两个不同的URL呈现相同的视图

Python 名称空间有问题。两个不同的URL呈现相同的视图,python,django,django-templates,django-views,Python,Django,Django Templates,Django Views,我的URL有问题。我有一个名为“用户”的应用程序,它有两个模特,沙龙和造型师。url/Stylests和/salons正在呈现相同的视图(Stylests_结果),但是/salons应该呈现salon_结果,我不知道为什么。我认为我使用名称空间的方式可能有问题 users/url.py from django.conf.urls import url #import views from the current directory from . import views urlpattern

我的URL有问题。我有一个名为“用户”的应用程序,它有两个模特,沙龙和造型师。url/Stylests和/salons正在呈现相同的视图(Stylests_结果),但是/salons应该呈现salon_结果,我不知道为什么。我认为我使用名称空间的方式可能有问题

users/url.py

from django.conf.urls import url

#import views from the current directory
from . import views

urlpatterns=[
    url(r'^$', views.stylist_results, name='stylist_results'),
    url(r'^(?P<pk>\d+)$', views.stylist_detail, name='stylist_detail'),
    url(r'^$', views.salon_results, name='salon_results'),
    url(r'^(?P<pk>\d+)$', views.salon_detail, name='salon_detail'),
]
url.py

from django.conf.urls import url
from django.contrib import admin
from django.conf.urls import include
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

from . import views

urlpatterns = [
    url(r'^salons/', include('users.urls', namespace='salons')),
    url(r'^stylists/', include('users.urls', namespace='stylists')),
    url(r'^admin/', admin.site.urls),
    url(r'^$', views.home, name='home'),
]


urlpatterns += staticfiles_urlpatterns()
views.py

from django.shortcuts import render


def home(request):
    return render(request, 'home.html')

你以为会发生什么

您在url.py中包含相同的用户/url.py

它做了以下工作:

查找我/设计师/=>进入包含的URL 查找url的第一个实例(r'^$',views.stylest_results,name='stylest_results')

呈现该视图

同样的事情也发生在美容院/


你期望发生什么

您在url.py中包含相同的用户/url.py

它做了以下工作:

查找我/设计师/=>进入包含的URL 查找url的第一个实例(r'^$',views.stylest_results,name='stylest_results')

呈现该视图

同样的事情也发生在美容院/


您在此处为沙龙和造型师指定相同的url集(users.url):

url(r'^salons/', include('users.urls', namespace='salons')),
    url(r'^stylists/', include('users.urls', namespace='stylists')),

您在此处为沙龙和造型师指定相同的url集(users.url):

url(r'^salons/', include('users.urls', namespace='salons')),
    url(r'^stylists/', include('users.urls', namespace='stylists')),

将您的造型师和沙龙视图分为两个单独的模块。你可能会考虑创建两个不同的应用程序,但你不必这样做。 用户/设计师_url.py

urlpatterns = [
    url(r'^$', views.stylist_results, name='stylist_results'),
    url(r'^(?P<pk>\d+)$', views.stylist_detail, name='stylist_detail'),
]

目前,沙龙URL的正则表达式与设计师URL完全相同,因此沙龙URL始终首先匹配。

将设计师和沙龙视图拆分为两个单独的模块。你可能会考虑创建两个不同的应用程序,但你不必这样做。 用户/设计师_url.py

urlpatterns = [
    url(r'^$', views.stylist_results, name='stylist_results'),
    url(r'^(?P<pk>\d+)$', views.stylist_detail, name='stylist_detail'),
]

目前,沙龙url的正则表达式与设计师url完全相同,因此沙龙url始终首先匹配。

它始终执行第一个匹配的url-
r'^$',views.stylist\u results,
。创建两个分开的文件。它始终执行第一个匹配的url-
r'^$,视图。Stylest_结果,
。创建两个分开的文件。
urlpatterns = [
    url(r'^salons/', include('users.salon_urls', namespace='salons')),
    url(r'^stylists/', include('users.stylist_urls', namespace='stylists')),
    ...
]