我必须患严重的睡眠不足,但我很难过。我似乎无法弄清楚如何让{% 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
的示例摘要。
人/ single.html
<tr>
<td width="300px">Supervisor: <a href="{% url employee_view , id=supervisor_id %}">{{ supervisor }}</a></td>
</tr>
现在我可以看到我来回传递正确的数据。例如,这结果 在代码中的链接
<td width="300px">Supervisor: <a href="//uid/415/">NAME</a></td>
现在我做错了什么..我错过了网址的主机名部分.. 有人可以告诉我如何找回“http://127.0.0.1:8000/uid/415”或者主机名是什么?
Grr ..这一定很简单,我知道我正在遭遇睡眠......
答案 0 :(得分:2)
get_absolute_url用词不当,永远不会返回绝对(方案+主机名+端口)部分。对于这方面的事情,您需要使用Sites framework(使用Site.objects.get_current())并分别获取域名等。
该方法的命名引起了Simon Willison has proposed replacing it entirely的充分关注。