首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >覆盖Django呈现方法

覆盖Django呈现方法
EN

Stack Overflow用户
提问于 2017-07-07 21:30:08
回答 1查看 771关注 0票数 0

使用以下渲染器...

代码语言:javascript
复制
from django.shortcuts import render
...
return render(request, 'template.html', {'context':context,})

是否可以覆盖render类的方法,以便在某些情况下我可以自己解释模板标记,例如,如果我发现一个由某种格式组成的标记,例如...

代码语言:javascript
复制
{% url 'website' page.slug %}

我可以把它指向...

代码语言:javascript
复制
/theme/theme-1/page.html

代码语言:javascript
复制
/theme/theme-2/page.html

这取决于特殊的设置。

EN

回答 1

Stack Overflow用户

发布于 2017-07-07 21:47:15

render方法只是执行以下操作的快捷方式:

代码语言:javascript
复制
template = loader.get_template(''template.html')
context = {
    ...,
}
return HttpResponse(template.render(context, request))

因此,这不是尝试改变url标签行为的正确地方。

对于您给出的示例,网站看起来应该是一个保存theme-1theme-2的变量。然后,您可以将变量传递给url标记,而不是字符串'website'

代码语言:javascript
复制
{% url website page.slug %}

如果这是不可能的,您可以创建一个custom template tag my_url,它根据您的设置返回正确的url。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44972056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档