簡體   English   中英

Django - 顯示 ImageField

[英]Django - Display ImageField

我剛開始使用 django,我還沒有找到很多關於如何顯示 imageField 的信息,所以我做了這個:

模型.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')

視圖.py

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

圖像.html

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

我已經從終端保存了一個圖像,我知道在那里,如果在 image.html 中執行此操作:

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

輸出是: Car 對象

誰能告訴我我的錯誤在哪里?

非常感謝。

ImageField包含一個url屬性,您可以在模板中使用它來呈現正確的 HTML。

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

您還可以使用 Settings.py 中的靜態 URL。 在您的應用程序的靜態目錄中創建一個目錄,例如“上傳”。 還要在models.py中的模型中更改此設置。

使用以下代碼:

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

感謝所有人,我以這種方式修復它。

視圖.py

def image(request):
carx = Car.objects.all()
for mycar in carx:
    MyCar = mycar.photo.url
variables = RequestContext(request,{
    'carx':MyCar
})
return render_to_response('image.html',variables)

圖像.html

{% extends "base.html" %}

{% block content %}
     <img src="{{ MEDIA_URL }}{{ carx }}"/>
{% endblock %}

設置.py

 MEDIA_URL = '/Users/gcarranza/PycharmProjects/django_bookmarks/'
 STATIC_URL = '/Users/gcarranza/PycharmProjects/django_bookmarks/site_media/'
 STATICFILES_DIRS = (
 '/Users/gcarranza/PycharmProjects/django_bookmarks/site_media',)

現在我知道 carx.photo.url 檢索文件的絕對路徑,它唯一的問題是作為靜態文件加載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM