изображение не отображается в django шаблонах, я нов в django и работаю над проектом ... я избавился от этой ошибки, но ничего не произошло - PullRequest
0 голосов
/ 09 апреля 2020

я пытаюсь показать pi c в django tempate, но он не работает

, вот мой файл settings.py, где путь stati c и медиа-файл

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

это мой model.py изображение хранится в папке static / img

class Loader_post(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="Loader")
    pick_up_station = models.CharField(max_length=150)
    destination_station = models.CharField(max_length=150)
    sender_name = models.CharField(max_length=150)
    phone_number = PhoneNumberField(null=False, blank=False, unique=True)
    receiver_name = models.CharField(max_length=150)
    sending_item = models.CharField(max_length=150)
    image_of_load = models.ImageField(default='',upload_to='static/img')
    weight = models.CharField(max_length=150)
    metric_unit = models.CharField(max_length=30, default='')
    quantity = models.PositiveIntegerField()
    pick_up_time = models.DateField()
    drop_time = models.DateField()
    paid_by = models.CharField(max_length=150)
    created_at = models.DateTimeField(auto_now=True)
    published_date = models.DateField(blank=True, null=True)

это мой html шаблон для отображения пользовательских данных

{% extends "post.html" %}
 {% block content %}
{% load static %} 
{% for loader in Loader %}

                <h4>Loader Id- {{loader.id}}</h4> Username-{{user.username}}

                <h3>Sender name-{{loader.sender_name}}</h3>
            </h4>
            <p class="card-text">
                <h4>pick up station-{{loader.pick_up_station}}</h4>
            </p>
            <img src="{{ loader.image.url }}" alt="image">
            <p class="card-text">{{loader.destination_station}}</p>
            <p class="card-text">{{loader.phone_number}}</p>
            <p class="card-text">{{loader.receiver_name}}</p>
            <p class="card-text">{{loader.sending_item}}</p>
            <p class="card-text">{{loader.weight}}</p>
            <p class="card-text">{{loader.quantity}}</p>
            <p class="card-text">{{loader.pick_up_time}}</p>
            <p class="card-text">{{loader.drop_time}}</p>
            <p class="card-text">{{loader.paid_by}}</p>
            <p class="card-text">{{loader.created_at}}</p>
            <a class="btn btn-primary" href="{% url 'Loader:Delete' loader.id %} ">delete</a>
            <a class="btn btn-primary" href="{% url 'Loader:Update' loader.id %} ">update</a>


</div> {% endfor %} {% endblock content %}

это мой urls.py

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

app_name = 'Loader'

urlpatterns = [
    path('post_detail/', views.Loader_post_view.as_view(), name="post_detail"),
    path('post/', views.post.as_view(), name="post"),
    path('my_job/', views.Loader_post_list.as_view(), name="my_job"),
    path('delete/<int:pk>', views.Loader_post_delete.as_view(), name="Delete"),
    path('update/<int:pk>', views.Loader_post_update.as_view(template_name="post_detail.html"), name="Update")
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

как я могу удалить эту ошибку или любую ошибку в моем коде?

1 Ответ

0 голосов
/ 09 апреля 2020

Присмотритесь


Прежде всего, вы используете разные имена. В models.py атрибут изображения соответствует image_of_load , тогда как в вашем шаблоне sr c равен {{loader.image.url}} не { {loader.image_of_load.url}} . Во-вторых, попытайтесь поместить {% load stati c%} в самый верх вашего файла, что является советом из документации, по крайней мере над тегом {% block content%}.

Я думаю, что в файле models.py вы должны использовать upload_to = 'img' , поскольку вы установили каталог папки stati c. Помните, что загруженные изображения пользователями go в папку / URL-адрес мультимедиа, а не в вашу папку * stati c. Папка stati c предназначена для CSS файлов и изображений, которые вы обслуживаете, таких как lo go.

вашего веб-сайта. Надеюсь, это поможет. Не стесняйтесь задавать мне еще вопросы!

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