【问题标题】:Django routes - check route from DBDjango 路由 - 从数据库检查路由
【发布时间】:2011-11-18 19:37:14
【问题描述】:

早上,

对于我的 django 网站,我想让网址尽可能短。 所以,而不是, /用户/约翰 /用户/罗纳德

我只想像 /john 和 /ronald 一样

所以在我的路由中,我将所有请求都配置为一个

urlpatterns = patterns('',
     ....
    (r'^about/$', 'frontend.views.about'),
    (r'^(.*?)/$', 'users.views.index')
)

这意味着基本上所有请求都将由用户控制器处理,如果没有在其他地方处理,这还不错。

但我想做同样的蛋糕。

所以 /cakes/chocolate-coated-cake 只需要 /chocolate-coated-cake

所以说真的,如果在我的用户方法中,而不是引发 404,我可以只是一些如何调用 try next 路由,那就太好了,所以它以 DB 字段为条件。

有意义吗?

【问题讨论】:

    标签: django routes url-routing


    【解决方案1】:

    在这种情况下,我希望有一个单独的调度程序视图(与用户无关,因为它与用户无关)。在那里,您可以在列表中设置模型的顺序并遍历它,直到第一次成功,并以此结果作为参数调用适当的视图(用户视图、蛋糕视图)。

    附:希望你不会有同名的用户和蛋糕:)

    【讨论】:

    • 同意。您必须有一个调度视图,它会系统地尝试按顺序查找每个模型中的 slug,然后在找到匹配项时委托给适当的视图。但是,这会给您的数据库带来额外的压力,并且您可能会遇到蛞蝓不是唯一的问题。最好只保留标准前缀。在 URL 前添加 /user//cake/ 并不会使其更长,因此不必这样做。
    猜你喜欢
    • 1970-01-01
    • 2012-03-28
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多