【问题标题】:Django map UrlsDjango 地图网址
【发布时间】:2016-12-22 18:10:13
【问题描述】:

您好,我是 django 新手,

我为类别明智的产品创建了一个简单的应用程序。为此,我想显示为以下 url 模式。

  • / -> 主页
  • /product -> 分类页面
  • /product/product_name -> 产品页面

为了实现这一点,我编写了以下代码。 myapp/urls.py文件

import product

urlpatterns = [
    url(r'^manage/', admin.site.urls),
    url(r'^', include(product.urls)),
    url(r'^product/', include(product.urls)),
]

myapp/product/urls.py(我正在管理应用明智的网址)

from views import product_name, product_root

urlpatterns = [
    url(r'^', product_root, name="ProductRoot"),
    url(r'^product_name/', product_name, name="ProductName"),
]

现在,当我运行应用程序并浏览页面时,它会给出以下结果。

  • / -> 产品分类页面
  • /product -> 产品分类页面
  • /product/product_name -> 产品分类页面(但应该是产品页面)
  • /product/product_name/any_value -> 产品类别页面(应该返回404)

谁能指导我做错了什么?

【问题讨论】:

    标签: python django url


    【解决方案1】:

    您需要终止应用网址中的模式:

    url(r'^$', product_root, name="ProductRoot"),
    url(r'^product_name/$', product_name, name="ProductName"),
    

    否则第一个将匹配所有内容。

    【讨论】:

    • 不,您必须明确终止包含其他文件的主文件中的 URL。
    • @MoinuddinQuadri $ 标志着 URL 的 结束:如果您包含新模式,则不想结束它。
    • 哦,是的。我想念你的评论。在这种情况下你是正确的,它不应该以$ 结尾
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-03
    • 2011-10-29
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多