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 関数は不要です。次のように、テンプレートから画像の URL にアクセスできます。

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