Python url模板标签只给出了绝对url的一部分.. ..一定是睡眠不足
Posted
技术标签:
【中文标题】Python url模板标签只给出了绝对url的一部分.. ..一定是睡眠不足【英文标题】:Python url template tags giving only part of a absolute url.. ..Must be a lack of sleep 【发布时间】:2011-01-08 07:50:52 【问题描述】:我一定是严重缺乏睡眠,但我很难过。我似乎无法弄清楚如何让% url %
指令给我正确的网址。所以让我们从基础开始..
urls.py
from people.views import employee_detail
urlpatterns = patterns("",
url(r'/uid/(?P<id>[0-9]+)/$', employee_detail, 'template_name' : 'people/single.html', name = 'employee_view'),
)
views.py
from django.shortcuts import render_to_response, get_list_or_404
from django.template import RequestContext
from people.models import Employee, OfficeLocation
def employee_detail(request, id, template_name = None):
"""
This will give you a full detailed information on a user
based off of there name.
"""
person = Employee.objects.get(id = id)
return render_to_response(template_name, _getDetail(person),
context_instance = RequestContext(request))
最后这里是我的people/single.html
的一个示例 sn-p。
人/single.html
<tr>
<td >Supervisor: <a href="% url employee_view , id=supervisor_id %"> supervisor </a></td>
</tr>
现在我可以看到我正在来回传递正确的数据。例如这个结果 在代码中看起来像
的链接中<td width="300px">Supervisor: <a href="//uid/415/">NAME</a></td>
现在我做错了什么..我缺少 url 的主机名部分..有人可以告诉我如何取回“http://127.0.0.1:8000/uid/415”或任何主机名吗?
Grr.. 这很简单,我知道我睡眠不足..
【问题讨论】:
【参考方案1】:get_absolute_url 用词不当,从不返回绝对(方案 + 主机名 + 端口)部分。对于这方面的事情,您需要使用Sites framework(使用Site.objects.get_current())并单独获取域等。
该方法的命名引起了Simon Willison has proposed replacing it entirely的关注。
【讨论】:
所以我崩溃并使用了站点框架。一旦我完成它,我会给你信用。谢谢!!以上是关于Python url模板标签只给出了绝对url的一部分.. ..一定是睡眠不足的主要内容,如果未能解决你的问题,请参考以下文章
在视图而不是模板中生成带有 Django 静态 url 的图像标签