Questo è facile da fare nella vista:
from django.core.urlresolvers import reverse
url = request.build_absolute_uri(reverse('blog:detail', args=[blog.slug]))
Se avete bisogno di farlo nel modello, probabilmente puoi creare il tuo tag modello senza troppi problemi.
Modifica
Supponendo che si vuole fare questo nella vostra Home
vista, si potrebbe fare qualcosa di simile:
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)
Poi nel modello, mentre si sta loop con {% for postobj in posts %}
è possibile accesso postobj.post
e postobj.url
.
fonte
2013-07-25 21:09:11
possibile duplicato del [Django URL completo a get \ _absolute \ _url] (http://stackoverflow.com/questions/3994060/django- full-url-in-get-absolute-url) – karthikr
https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.build_absolute_uri Questo potrebbe aiutarti. –