12
A
回答
25
问题的标题假设“视图”和“模板”是可以互换的 - 它们不是。为了在模板中获取当前网站,需要将其添加到用于呈现模板的上下文中。如果您使用的是RequestContext
,则可以编写一个上下文处理器来自动执行此操作。
你可以写一个上下文处理器要做到这一点,像这样:
from django.contrib.sites.models import Site
def site_processor(request):
return { 'site': Site.objects.get_current() }
然后,将其添加到您的TEMPLATE_CONTEXT_PROCESSORS
,并使用它,像这样:
<h3>{{ site.name }}</h3>
0
古怪,使用bradleyayers处理器给了Null结果,所以不是使用Site框架,而是使用请求中的参数。
所以处理器将看起来像:
def host_processor(request):
return { 'host': request.get_host() }
希望它帮助
相关问题
- 1. 是否可以通过门户网站访问URL?
- 2. 检查是否可以通过JavaScript访问远程网站
- 3. 是否可以通过PHP访问REQUEST_FILENAME?
- 4. ViewExpiredException当通过googlebot访问网站
- 5. 是否可以通过IP地址和索引文件路径访问网站?
- 6. 是否可以通过网络访问Cacti RRD数据库
- 7. Sharepoint 2010:是否可以扩展Fab40网站模板?
- 8. 我可以通过ipv4访问我的ipv6网站吗?
- 9. 通过网页访问一个网站
- 10. 网站访问者是否可以更改AngularJS属性名称?
- 11. 如何判断访问者是否通过手机访问网站?
- 12. 问题通过HttpURLConnection访问HTTP网站
- 13. 我的网站可通过domain.com/index.html访问,但不能通过domain.com访问
- 14. 是否可以访问Facebook当前热门话题?
- 15. 是否可以访问ViewPager正在查看的当前片段?
- 16. 是否可以访问Ribbon_Load上的当前MailItem?
- 17. 有没有办法知道移动用户以前是否通过QR码URL访问过网站?
- 18. 服务是否可以访问组件的模板
- 19. 是否可以通过java.net访问204响应代码的站点的html?
- 20. 是否可以通过Ajax加载Handlebars模板?
- 21. Webservice需要通过网站访问
- 22. 如何通过Java访问SharePoint网站
- 23. 通过网站访问COM端口
- 24. 访问ASP网站通过LAN
- 25. 通过网站访问一个Android
- 26. 通过私人地址访问网站
- 27. 您是否可以只通过移动应用程序访问网页?
- 28. 网页访问数据是否可以通过USB发送到计算机
- 29. 如何检查一个文件夹是否可以通过网络访问c#
- 30. 检查网页是否可以通过php访问并用ajax刷新
我使用'django.views.generic.simple.direct_to_template',所以我应该被覆盖,对不对?这没有内置的上下文处理器? –
是的,'direct_to_template'使用'RequestContext',但是您需要编写自己的上下文处理器,因为Django中没有一个。或者,您可以将参数传递给'direct_to_template',将当前网站添加到上下文。 –
为什么名为'site_processor'而不是'site'的函数? –