在下面的代码中,我正在尝试使用请求发送一个对象,这是否正确,如果是这样,如何在模板中解码
def index(request):
cat = Category.objects.filter(title="ASD")
dict = {'cat' : cat}
request.update('dict' : dict)
#or
request.dict=dict;
在模板中我们可以将代码编写为
{% for obj in request.dict%}
obj.title
{% endfor %}
EDIT:
如果我正在调用类似
def post_list(request, page=0, paginate_by=20, **kwargs):
logging.debug("post_list")
page_size = getattr(settings,'BLOG_PAGESIZE', paginate_by)
return list_detail.object_list(
request,
queryset=Post.objects.published(),
paginate_by=page_size,
page=page,
**kwargs
)
答案 0 :(得分:2)
你可以这样做,但你为什么要这样做? Django有一个简单,定义明确且记录完备的方法,可以通过上下文将数据传递到模板中。为什么要设法解决这个问题呢?
评论后编辑否。再次,Django通过extra_context
参数再次is well-documented将一个非常好的方法传递给一般视图。
答案 1 :(得分:0)
您没有显示用于渲染视图的实际功能(render()
,render_to_response()
等。)
假设您正在使用render_to_response()
:
render_to_response(template_name[, dictionary][, context_instance][, mimetype])
使用给定的模式呈现给定模板 上下文字典并返回一个 HttpResponse对象与渲染 文本。
因此,如果您将{"foo": your_object}
作为字典传入,则可以直接在模板中使用{{ foo }}
。
如果您使用的是object_list
通用视图,则应使用extra_context
:
extra_context:值的字典 添加到模板上下文。通过 默认情况下,这是一个空字典。 如果字典中的值是 可调用,通用视图将调用 它就在呈现模板之前。