django URL-адрес носителя правильный, но изображение не отображается - PullRequest
0 голосов
/ 14 июля 2020

поэтому я делаю тестовый Django проект, чтобы исправить проблему, которая у меня есть на моем веб-сайте, заключается в том, что изображение не отображается, но когда я вижу URL-адрес в консоли, это правильный MEDIA_URL, который я установил (изображение внизу) Я знаю, что, возможно, проблема в моих шаблонах URL, но я не могу найти, что это, вот мой код.

urls.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)

и извините, вот моя модель i редактировать

    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

views.py

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

template

    <!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>

settings.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 администратора он работает, и он находит медиафайл и сохраняет его там, но когда я пытаюсь просмотреть изображение, щелкнув URL-адрес в django admin, он показывает мне такую ​​ошибку

django admin new image

error image

and in my console its the correct media url too

образ консоли

1 Ответ

0 голосов
/ 14 июля 2020

В Django вы не можете щелкнуть URL-адрес на портале администрирования для просмотра файлов. Эти URL-адреса усечены и не представляют точное местоположение файла в папке проекта. Так что это только / media / image_transaksi ..., а не C: / Project folder / Static / media / image_transaksi (или аналогичный).

Однако вы можете использовать для рендеринга этих файлов в шаблонах, используя что-то вот так:

{{ image_transaksi.url }}

Django гарантирует, что будет найден весь путь, и изображение будет отрисовано так, как задумано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...