1

添加了一个特色图像类,它增加了为博客文章设置特色图像的能力。

class PostFeaturedImage(models.Model):  
    last_modified = models.DateTimeField(auto_now_add=True,editable=False)
    created = models.DateTimeField(auto_now_add=True,editable=False)
    title = models.CharField(max_length=20)
    image = models.ImageField(upload_to='images/%Y/%m/%d')
    post = models.ForeignKey(Post)

    def get_image(self, field_attname):
        """Get upload_to path specific to this photo."""
        return 'photos/%Y/%m/%d' % (""" need this to make it work """)

图片将上传到一个目录,如images/2012/12/19/image.png

我已经更新了 admin.py,我可以成功地将特定图像上传并保存到博客文章中,但我缺乏检索它的知识。我怎样才能完成get_image,这样我才能找回图像的路径,然后我用什么来显示它?我想它会是这样的......

{% if posts %}
    {% for post in posts %}
        {% if postfeaturedimage %}
         <img src="{{post.postfeaturedimage.get_image}}" alt="{{post.postfeaturedimage.title}}">
        {% endif %}
    {% endfor %}
{% endfor %}

我对 Django 非常陌生,感觉自己正在取得重大进展,但我仍然在一些细节上有所疏忽。

4

2 回答 2

2

试试这个

def get_image(self):
    """Get upload_to path specific to this photo."""
    return self.image.url

此外,您在模板中的if条件PostFeaturedImage应该{% if post.postfeaturedimage %}{% if postfeaturedimage %}

于 2012-12-19T21:06:06.253 回答
2

get_image 函数是不必要的。您可以像这样从模板访问图片网址:

{{ post.postfeaturedimage.image.url }}
于 2012-12-19T21:12:19.333 回答