này rất dễ dàng để làm trong giao diện:
from django.core.urlresolvers import reverse
url = request.build_absolute_uri(reverse('blog:detail', args=[blog.slug]))
Nếu bạn cần phải làm điều đó trong bản mẫu, bạn có thể tạo thẻ mẫu của riêng mình mà không gặp quá nhiều rắc rối.
Sửa
Giả sử rằng bạn muốn làm điều này trong Home
tầm nhìn của bạn, bạn có thể làm một cái gì đó như thế này:
def Home(request):
posts = Article.objects.filter(published=True).order_by('-publish')
site = Site.objects.get_current()
c = RequestContext(request, {
'posts': [{'post': post,
'url': request.build_absolute_uri(reverse('blog:detail', args=[post.slug]))}
for post in posts]
'site': site,
})
return render_to_response('templates/index.html', c)
Sau đó, trong mẫu của bạn trong khi bạn đang lặp với {% for postobj in posts %}
bạn có thể truy cập postobj.post
và postobj.url
.
Nguồn
2013-07-25 21:09:11
thể trùng lặp của [url django đầy đủ trong get \ _absolute \ _url] (http://stackoverflow.com/questions/3994060/django- url đầy đủ-trong-get-tuyệt đối) – karthikr
https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.build_absolute_uri Điều này có thể giúp bạn. –