5 django django-forms django-views
我发现Django的request.is_ajax是一种非常有用的方法,可以通过JS添加渐进增强功能,并且仍然可以在我的视图中保留DRY.
但是,如果是request.is_ajax,我想使用基于类的视图并使用不同的模板进行渲染.
我不清楚如何覆盖我的默认"template_name"并使模板在基于类的视图中加载条件.
我怎样才能做到这一点?
def get_template_names(self):
if self.request.is_ajax():
return ['ajax_template.html']
else:
return ['standard_template.html']
Run Code Online (Sandbox Code Playgroud)
执行此操作的适当方法是重写TemplateResponseMixin.
如果您只需要为 Ajax 请求提供不同的模板,则覆盖get_template_names. 如果您想完全提供不同的响应(例如响应application/json),然后覆盖render_to_response以生成不同的HttpResponseAjax 请求。
| 归档时间: |
|
| 查看次数: |
3598 次 |
| 最近记录: |