web-dev-qa-db-ja.com

Django-ImageFieldを表示します

Djangoを使い始めたばかりで、imageFieldの表示方法に関する多くの情報が見つからなかったので、次のようにしました:

models.py

class Car(models.Model):
    name = models.CharField(max_length=255)
    price = models.DecimalField(max_digits=5, decimal_places=2)
    photo = models.ImageField(upload_to='site_media')

views.py

def image(request):
    carx = Car()
    variables = RequestContext(request,{
        'carx':carx
    })
    return render_to_response('image.html',variables)

image.html

{% extends "base.html" %}
{% block content %}
   <img src=carx />
{% endblock %}

私はすでにターミナルを使用しているので画像を保存していますが、そこにあることも知っています。

{% block content %}
    {{ carx }}
{% endblock %}

出力は次のとおりです:Carオブジェクト

誰かが私のエラーの場所を教えてもらえますか?

どうもありがとう。

20
unixeO

ImageFieldにはurl属性が含まれており、これをテンプレートで使用して適切なHTMLをレンダリングできます。

{% block content %}
    <img src="{{ carx.photo.url }}">
{% endblock %}
34
voithos

Settings.pyで静的URLを利用することもできます。アプリの静的ディレクトリに、「アップロード」などのディレクトリを作成します。 models.pyのモデルでもこれを変更します。

次のコードを使用します。

<img src="{% static carx.photo.url %}" />
2
Vincent Verloop