gpt4 book ai didi

python - 当前在 Django 模板中获取主页 URL(域)的方法?

转载 作者:行者123 更新时间:2023-12-02 09:32:49 25 4
gpt4 key购买 nike

这么简单,但好像没有提供。

基本上,如果我的网站是...

或者非root安装,例如

...我认为 django 会知道这一点,并且在模板中有一个可用的常量。

我发现的解决方案包括:

  1. 在 settings.py 中使用 SITE_URL = 进行设置
  2. 在 View 中引用 settings.py。
  3. 最后在模板中使用 {{ SITE_URL }} 或其他内容访问它。

不太D.R.Y.

听起来不是被宠坏了,但是 django 没有提供 {{ GET_ME_THE_ROOT_URL }} 引用吗?

抱歉,django 训练我期待这样的好东西。

只是说,如果我正在编写一个框架,这将是我做的第一件事,除了在我的 table 旁边放一个装满热袋的小冰箱和一个安全但距离很近的微波炉。

最佳答案

哈!好问题。

让我们分解一下您的问题。您希望项目中所有可用模板中都可以使用一些数据。而且,您希望只提供一次值,而不是在多个 View 中重复该值。

模板上下文处理器就是您正在寻找的东西。在你的settings.py文件中,将新的 context_processor 添加到 TEMPLATE_CONTEXT_PROCESSORS 列表中.

TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.media",
"django.core.context_processors.request",
"django.contrib.messages.context_processors.messages",
"your_app.context_processors.root_url"
)

然后,在 your_app 里面,创建一个名为 context_processors.py 的文件。该文件将包含以下代码。

from django.conf import settings

def root_url(request):
"""
Pass your root_url from the settings.py
"""
return {'SITE_URL': settings.ROOT_URL_YOU_WANT_TO_MENTION}

并且,在每个模板中,您都会有一个 {{SITE_URL}}根据您提供给 ROOT_URL_YOU_WANT_TO_MENTION 的值,出现在上下文中在你的settings.py文件。

Django 确实宠坏了每个人。但提供了让你被宠坏的机制。

希望这能解决您的问题。

关于python - 当前在 Django 模板中获取主页 URL(域)的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32001293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com