2014-10-12 115 views
0

有没有什么办法可以获得一个类的对象列表,而不用创建一个专门的视图只使用可能TemplateView.as_view()和模板?Django:是否有可能直接从模板中的数据库访问对象

+0

我不知道我知道你问这里。如果您正在尝试获取特定实例的属性字典,那么您的模板在哪里?你的意思是你想列出它们吗?即''instance .__ dict__''当你说''objects''时,你的意思是你的类中所有实例化对象的列表?即http://stackoverflow.com/questions/1535327/python-how-to-print-a-class-or-objects-of-class-using-print – 2014-10-12 16:45:19

回答

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

当然。 您可以使用分配标签(将其写入模板标签库中)。 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 %} 
相关问题