【发布时间】:2009-12-17 20:16:49
【问题描述】:
读者文摘版本:如何通过获取模型名称的 URL 参数而不对 URLconfs 进行硬编码以匹配每个模型,从模型中获取数据(如果指定,则为单行或完整表)?更多详情,请继续阅读:
我正在制作一个包含三个模型的应用程序,我想制作一个简单的视图,该视图采用模型的名称,并吐出模型的默认管理器 Model.manager.all(),,如果有 slug,则单个对象匹配那个蛞蝓。我不知道该怎么做,所以我遇到了必须为每个模型单独制作视图/URLconfs 的问题。
以下是 URLconf 的样子:
(r'^model1/$', 'model1_index_view', 'model1_index'),
(r'^model1/(?P<slug>[-\w]+)/$', 'model1_detail_view', 'model1_detail'),
(r'^model2/$', 'model2_index_view', 'model2_index'),
它会持续一段时间,但我想你明白了。我最终硬编码了相对大量的 URLconfs 来做一些我认为我可以用一个 View 来做的事情,这个 View 将 Model 名称作为参数和可选的 slug。我担心的是,如果有人指定模型名称说...用户会发生什么?是否有一段代码可以从应用程序中获取模型列表并确保它与其中一个匹配,而不是来自 contrib.auth 或其他应用程序的模型?
【问题讨论】:
标签: django dry django-urls