Guy*_*den 5 django django-templates
我希望能够使用反向URL查找以链接到预设域,例如:
在模板中:
<a href="{% url 'admin_site' %}">Admin</a>
页面可能位于http://www.mydomain.com/home,管理站点可能http://admin.mydomain.com位于 - 或处于开发模式时,它可能是http://devadmin.localhost
我可以使用环境变量在设置中设置域 - 但是我如何获得将该域放入页面模板的URL框架?
实现这一目标的两条简单路线:
只需创建一个可能位于某个地方的重定向视图,/go/admin它只会重定向到我设置的任何域.
在模板上下文中包含我的域并重写href之类的东西 <a href="{{ ADMIN_SITE }}">
两种选择都有效.但两者都有缺点:第一个涉及和额外的重定向步骤,第二个不使用与url其他链接相同的标记.
我认为您不能/应该直接将外部网址添加到您的urls.py. 该文件用于必须从 django 服务器解析的 URL,因此如果该页面位于另一台服务器中......并且您想要使用它{% url %}必须通过重定向。
我会这样做:
from django.conf.urls import patterns, url
from django.views.generic import RedirectView
urlpatterns = patterns('',
# ...
url(r'^remote_admin/$', RedirectView.as_view(url='http://admin.mydomain.com'),
name='remote_admin'),
url(r'^dev_admin/$', RedirectView.as_view(url='http://devadmin.localhost'),
name='dev_admin'),
)
Run Code Online (Sandbox Code Playgroud)
然后{% url %}应该像往常一样工作:
{% url 'remote_admin' %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1644 次 |
| 最近记录: |