Django:是否可以从模板中的数据库中直接访问对象

时间:2014-10-12 14:06:59

标签: django django-templates

有没有办法获得一个类的对象列表而不使用可能TemplateView.as_view()和模板创建专用视图?

2 个答案:

答案 0 :(得分:1)

事实上,你需要一些能够返回响应对象的东西。这就是实际观点。

如果您不想将视图声明为函数或类,则可以使用lambda函数。 以下是工作urls.py的示例:

from django.conf.urls import url
from django.contrib.auth.models import User

from django.shortcuts import render_to_response



urlpatterns = [
        url(r'^test/$', lambda request: render_to_response('testapp/test.html', {'users': User.objects.filter()})),
]

我创建了匿名函数并返回了我需要的对象的响应,并指定了模板的路径。

答案 1 :(得分:1)

不确定。 您可以使用赋值标记(在模板标记库中写入)。 Assignment tag docs

@register.assignment_tag
def my_tag():
    return Product.objects.all()

在模板中(TemplateView - 没问题)

{% my_tag as my_tag %}
{% for item in my_tag %}
    {{ item.name }}
{% endfor %}