0

我有一个非常奇怪的问题。我的索引页面显示图像。没有任何错误,代码在这里:

def index(request):
    post = Post.objects.get(id=1)
    return render_to_response("index.html", {"post":post}, context_instance=RequestContext(request))

但我的详细信息页面不显示图像。这里的代码:

class PostDetailView(DetailView):
    context_object_name = "post"
    model = Post
    template_name = "post_detail.html"

    def get(self, request, *args, **kwargs):
        self.next = self.request.get_full_path()
        return super(PostDetailView, self).get(request, *args, **kwargs)

    def get_context_data(self, **kwargs):
        context = super(PostDetailView, self).get_context_data(**kwargs)
        context["form"] = CommentForm()
        context["next"] = self.next
        context["object_id"] = context['post'].id
        context["comments"] = Comment.objects.filter(
            content_type=ContentType.objects.get_for_model(self.model),
            object_id=context['post'].id, is_published=True)

        return context

我的 post_detail.html 页面:

{{ post.title }}  -----here ok!
{{ post.content }} ------here ok!
<div class="img">
    {% if post.image %}
        <img src="media/{{post.image_thumb}}" /> -----but here not ok.Why?
    {% endif %}
</div>

我的 index.html

{{ post.title }}
{{ post.content }}
<div class="img">
    {% if post.image %}
        <img src="media/{{post.image_thumb}}" />
    {% endif %}
</div>    

那么我的问题是什么,感谢您的时间。

4

2 回答 2

0

首先,确保您在文件 settings.py 中正确设置了媒体目录,然后将您的图像 url 更改为:

  <img src="/media/{{post.image_thumb}}" /> 

你少了一个斜线

于 2013-10-20T10:17:40.937 回答
0

您应该使用{{ post.image_thumb.url }}而不是{{ post.image_thumb }}.

{{ post.image_thumb }}隐式调用__unicode__post的方法,但是你想要的是图片的url属性,你可以用这个获取图片的绝对url。

于 2013-10-20T10:18:29.553 回答