在我的模板中:
<div class="widget-content">
{% render_widget settings %}
</div>
render_widget
是一个模板标签,它带有settings
个参数。
这里我们有templatetag中定义的方法代码:
def render_widget(settings):
# some processing and then save into context
t = get_template(#)
return t.render(Context(context))
上面的代码工作正常!上下文成功呈现给定模板。
现在我在load_ajax
中创建了新方法views.py
。应该在这个方法中发生以下事情:
此load_ajax
方法应采用context
中的t
和render_widget
变量,并使用{{1}在context
模板上呈现t
}}
我是Django和Ajax的新手。我该怎么办 ?
load_ajax方法:
'Ajax'
上述def load_ajax(request):
from myapp.templatetags.file_want_import import render_widget
if request.ajax:
# some code and render to the template with below lines
return direct_to_template(request, t,
extra_context=context)
和Context
应来自t
方法。
答案 0 :(得分:0)
基于对模板标签工作原理的误解,你已陷入逻辑循环:
重新开始,不要使用模板标签:
在视图中收集所有数据然后呈现模板会更容易。目前尚不清楚为什么需要模板标签。如果要渲染某些设置,只需将它们作为上下文的一部分传递给模板。例如:
view.py:
ctx = { "setting_var": settings.some_var }
return render_to_response(... context=ctx)
模板:
<div>
{{ setting_var }}
</div>