Django:URL模板标签中的模型参数

Posted

技术标签:

【中文标题】Django:URL模板标签中的模型参数【英文标题】:Django: Model parameter in the URL template tag 【发布时间】:2013-09-19 06:10:09 【问题描述】:

我想为我的通用视图使用 url 模板标签。

我对此进行了很多搜索,但没有找到我想要的,但这似乎是一个简单的问题。

我将使用Django book, Making a View Generic 使用过的示例:

# urls.py

from django.conf.urls.defaults import *
from mysite import models, views

urlpatterns = patterns('',
    (r'^events/$', views.object_list, 'model': models.Event),
    (r'^blog/entries/$', views.object_list, 'model': models.BlogEntry),
)

# views.py

from django.shortcuts import render

def object_list(request, model):
    obj_list = model.objects.all()
    template_name = 'mysite/%s_list.html' % model.__name__.lower()
    return render(request, template_name, 'object_list': obj_list)

所以,我对两个 URL 有一个视图,我的问题是:如何为这两个 URL 使用 django URL 模板标签?

我想在 html 模板中做这样的事情:

href=% url "mysite.views.object_list" model="Event" %
href=% url "mysite.views.object_list" model="BlogEntry" %

谢谢!

【问题讨论】:

【参考方案1】:

您需要为 url 定义名称:

(r'^events/$', views.object_list, 'model': models.Event, name='my_name'),

并使用它来代替视图路径:

href=% url "my_name" model="Event" %

【讨论】:

是的,就是这样,只有两件事:名字就够了,现在不需要参数了。 href=% url "my_name" % 和我的大错误以及为什么它对我不起作用, url 的名称,有必要使用 url 函数: url(r'^events/$', views.object_list , 'model': models.Event, name='my_name'),

以上是关于Django:URL模板标签中的模型参数的主要内容,如果未能解决你的问题,请参考以下文章

是否可以将查询参数传递给 Django % url % 模板标签?

Django:在 URL 模板标签中保留 GET 参数

Django 模板标签插入或替换 URL 参数

是否可以将关键字参数传递给 Django % url % 模板标签?关键字参数值应该来自 html 标签

对于 Django 模板 %url% 标签,我如何从通用视图上下文中找到所有 URL 参数,而不仅仅是最后一个?

13.Django中几大常用模板标签讲解及实战使用 for循环;if判断;页面跳转;开启关闭自动转义;url携带参数传递;注释