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

时间:2013-09-14 18:46:15

标签: django django-models django-urls django-templates

我想在我的通用视图中使用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})

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要为网址定义名称:

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

并使用它而不是视图路径:

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