我有一个简单的问题。我在django中有一个功能齐全的网站,它有一个标题,菜单和页脚,永不改变,内容也会发生变化。我简单的模板看起来像这样:
base.html文件在django中修改视图以处理ajax请求
<html>
...header...
<body>
...menu...
{%block content%}{%endblock%}
...footer...
</body>
</html>
和content.html
{%extends 'base.html'%}
{%block content%}...content according to selected menu item...{%endblock%}
这一点,一切工作正常。 现在我决定,对于已启用javascript的用户,我可以添加ajax调用,因此无论何时点击上级菜单项(将有onClick),只有“content”块被升级。我的问题是:我可以重复使用我的原始以某种方式查看和修改它以适应两种需求 - 常规调用和ajax调用?或者我应该以某种方式重新设计我的模板?还是我需要为每个单独的视图?
我的简化图的样子:
def main(request,site):
...some site processing...
return render_to_response('content.html',{'content':...site content...})
谢谢
这很有趣,谢谢,我会试试看。 – MartinM
我是会接受这个答案,因为它会让我找到最终的解决方案。基本的想法是,如果你想在你的django应用中使用ajax,并且不必为它输入很多额外的代码,那就是以不同的方式考虑模板。您不应该扩展模板,而应该包含您希望以后通过Ajax更新的模块。如果请求是常规的,那么你只需渲染基础(或者任何扩展基础),如果Ajax只渲染片段,然后将其放置在应该出现的位置 - 很棒的是 - 你可以在一个视图中进行。检查[this](http://www.micahcarrick.com/ajax-form-submission-django.html) – MartinM