1

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

我一直在搜索这个,我没有找到我想要的,但这似乎是一个简单的问题。

我将使用Django 书籍 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" %}

谢谢!

4

1 回答 1

0

您需要为 url 定义名称:

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

并使用它代替视图路径:

href={% url "my_name" model="Event" %}
于 2013-09-14T18:53:25.923 回答