gpt4 book ai didi

从模板到 View 的 Django 变量 - 最佳实践

转载 作者:行者123 更新时间:2023-12-04 19:57:13 25 4
gpt4 key购买 nike

我意识到使用:

...
return render_to_response('mytemplate.html',
locals(), context_instance=RequestContext(request))

在 View 中不被认为是好的代码和类似的东西:

...
return render_to_response('mytemplate.html', {
'some_variable' : some_variable,
'some_list': some_list,
}, context_instance=RequestContext(request))

因其易读性和明确性而被认为更好。我只是好奇如何最好地处理可能返回或可能不返回的变量。我应该在这样的 View 中明确设置它们吗:

...
some_variable = None
some_variable = <some business logic>
return render_to_response('mytemplate.html', {
'some_variable' : some_variable,
'some_list': some_list,
}, context_instance=RequestContext(request))

这会导致更冗长的 View 代码。或者我应该在将变量包含在响应中之前检查变量是否存在?

当然,如果我什么都不做,我会得到:

local variable 'some_variable' referenced before assignment

欢迎提出任何建议。

最佳答案

中间方法是使用上下文字典本身作为堆栈。

context = {}
if <condition>:
context['cond1'] = 'foo'

if <condition2>:
context['cond2'] = 'bar'

return render_to_response('template.html', context)

(另请注意,自 Django 1.3 起,您可以使用 render(request, template, context) 而不是冗长的 context_instance=RequestContext 东西。)

关于从模板到 View 的 Django 变量 - 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8806241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com