Относительное отображение URL для изображений в django imagefield - PullRequest
1 голос
/ 10 июня 2011

Я использую поле изображения для рендеринга изображений.Это URL;

    (r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': site_media}),
    (r'^$', 'webapp.blog.views.index'),
    url(
        r'^blog/view/(?P<slug>[^\.]+).html', 
        'webapp.blog.views.view_post', 
        name='view_blog_post'),

Это представления:

def index(request):
    return render_to_response('index.html', {
        'categories': Category.objects.all(),
        'posts': Blog.objects.all()[:5]
    })

def view_post(request, slug):   
    return render_to_response('view_post.html', {
        'post': get_object_or_404(Blog, slug=slug),
    })

Если я вызываю объект изображения на странице индекса с помощью {{ posts.photos.url }}, он правильно отображается на http://127.0.0.1/site_media/images/image.jpg.Но если я вызываю объект изображения в шаблоне view_post, он сопоставляется с http://127.0.0.1/blog/view/site_media/images/image.jpg.Как сделать так, чтобы view_post URL-адрес карты функции соответствовал правильному http://127.0.0.1/site_media/images/image.jpg URL-адресу.

1 Ответ

3 голосов
/ 10 июня 2011

Это не функция вашего urlconf, а то, как вы отображаете изображения в вашем шаблоне. Вы, вероятно, делаете что-то вроде этого:

<img src="site_media/images/image.jpg">

когда вы должны делать

<img src="/site_media/images/image.jpg">

... обратите внимание на начальный слеш. В качестве альтернативы, если вы используете STATIC_URL или MEDIA_URL, убедитесь, что они определены с начальной косой чертой в вашем settings.py.

...