Django url结构

2024-10-04 01:22:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我应该如何设计url或视图来保持url结构,就像下面的例子?在

example.com/location/
example.com/category/
example.com/location/category/

url(r'^$', IndexView.as_view(), name='index'),
url(r'^(?P<town>[\w\-_]+)/$', TownView.as_view(), name="town_detail"),
url(r'^(?P<category_slug>[\w\-_]+)/$', CategoryView.as_view(), name="category_list"),

当我试图访问类别下的url时,我被路由到TownView,这是可以接受的,因为url模式几乎相同。在

是否应将该类别归入example.com/c/category/? 在

编辑:

我确实解决了我的问题,正如下面所示。 所有的答案都很好,很有帮助。在

我必须验证这个解决方案的作用,并检查它是否引起任何问题。在

^{pr2}$

Tags: namecomview视图urlexampleaslocation
2条回答

我要看优先次序。我使用用户名和常规网址。所以我的计划是降低用户的优先级。在

要记住两件事:

1.优先级

如果你认为地理位置更重要,那就优先考虑位置。 但如果两者都很重要,唯一的选择是使用:

r'^(?P/location/<town>[\w\-_]+)/$'
r'^(?P/category/<category_slug>[\w\-_]+)/$'

2.父子关系

这也取决于父母和孩子关系。所以,你会知道哪个更重要。在

^{pr2}$

是的,正则表达式是相同的,Django使用第一个匹配的表达式,因此您会遇到问题。你可以做一些调整来区分它们。举个例子来说,你建议的那个很好。为了更方便用户使用,您可能会更加冗长,并将其设计为:

example.com/location/<location name>
example.com/category/<category name>
example.com/location/<location name>/category/<category name>

你应该这样做:

^{pr2}$

希望这有帮助!在

相关问题 更多 >