簡體   English   中英

django 媒體 url 正確但不顯示圖片

[英]django media url correct but not showing the picture

所以我做了一個測試 Django 項目來解決我在我的網站上遇到的問題是圖像不會顯示但是當我在控制台中看到 url 時,它是我設置的正確 MEDIA_URL(底部的圖片)我知道可能是問題在我的 urlpatterns 中,但我似乎無法找到它是我的代碼。

網址.py

    from django.urls import path
    from . import views
    from django.conf import settings
    from django.conf.urls.static import static

    urlpatterns = [
        path("",views.index,name="index"),
        path('callback/', views.callback, name='callback')
    ] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

抱歉,這是我編輯的 model

    class transaksi_user(models.Model):
        line_name = models.CharField(max_length=100)
        img_transaksi = models.ImageField(upload_to='image_transaksi')
        read_by_admin = models.BooleanField(default=False)

        def __str__(self):
            return self.line_name

視圖.py

    def index(request):
        user1 = transaksi_user.objects.all()
        return render(request,"messanger.html",{"user":user1})

模板

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
    </head>
    <body>
        {% for users in user%}
        <h1>{{users.line_name}}</h1>
        <img src="{{users.img_transaksi.url}}">
        {% endfor %}
    </body>
    </html>

設置.py

    STATIC_URL = '/static/'
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR,"staticfiles")
    ]
    STATIC_ROOT = os.path.join(BASE_DIR,"assets")
    MEDIA_URL ='/media/'
    MEDIA_ROOT = os.path.join(BASE_DIR,'media')

當我在 django 管理頁面中添加新圖像時,它可以工作並找到媒體文件並將其保存在那里但是當我嘗試通過單擊 django 中的 url 來查看圖像時,它會顯示錯誤

django 管理員新圖像

錯誤圖像

在我的控制台中它也是正確的媒體 url

控制台圖像

在 Django 中,您無法在管理門戶中單擊 URL 來查看文件。 這些 URL 被截斷,並不代表項目文件夾中的確切文件位置。 所以它只有 /media/image_transaksi... 而不是 C:/Project folder/Static/media/image_transaksi (或類似的)。

但是,您可以使用以下方式在模板中呈現這些文件:

{{ image_transaksi.url }}

Django 確保這將找到整個路徑並且圖像將按預期呈現。

暫無
暫無

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

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