Атрибут «изображение» не имеет файла, связанного с ним Django

#javascript #python #html #django #django-models

Вопрос:

Я надеюсь, что вы сможете помочь мне с моим проектом Django. Я могу загружать изображения в папку media_cdn внутри папки, основанной на имени слизняка. Проблема возникает, когда я пытаюсь отобразить изображение внутри списка сообщений и публикации. Это выдает ошибку, когда я перехожу на домашнюю страницу

Вот мой код

settings.py /мой сайт

 STATICFILES_DIRS=[
    Path(BASE_DIR,'static'),
    Path(BASE_DIR,'media')
    

]
STATIC_URL = '/static/'
MEDIA_URL ='/media/'
STATIC_ROOT=Path(BASE_DIR,'static_cdn')
MEDIA_ROOT=Path(BASE_DIR,'media_cdn')
 

models.py/blog

     def upload_location(instance, filename):
        file_path = 'blog/{author_id}/{title}-{filename}'.format(
                    author_id=str(instance.author.id),title=str(instance.title), filename=filename)
        return file_path
    
    
    class BlogPost(models.Model):
        title                   = models.CharField(max_length=50, null=False, blank=False)
        body                    = models.TextField(max_length=5000, null=False, blank=False)
        image                   = models.ImageField(upload_to=upload_location, null=True, blank=True)
        date_published          = models.DateTimeField(auto_now_add=True, verbose_name="date published")
        date_updated            = models.DateTimeField(auto_now=True, verbose_name="date updated")
        author                  = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
        slug                    = models.SlugField(blank=True, unique=True)
    
        def __str__(self):
            return self.title
    
    @receiver(post_delete, sender=BlogPost)
    def submission_delete(sender, instance, **kwargs):
        instance.image.delete(False) 
    
    def pre_save_blog_post_receiver(sender, instance, *args, **kwargs):
        if not instance.slug:
            instance.slug = slugify(instance.author.username   "-"   instance.title)
    
    pre_save.connect(pre_save_blog_post_receiver, sender=BlogPost)


blog_post_snip.html

{% if blog_post %}
    <a href="{% url 'blog:detail' post.slug %}">
                <img class="card-img-top" src="{{blog_post.image.url}}">
            </a>
...
{% else %}

<div class="container">
    <div class="row">
        <div class="card m-auto">
            <div class="card-body mt-2 mb-2">
                <h2 class="card-title">No results</h2>
                <p class="card-text">There were no results matching the search: "{{query}}"</p>
            </div>
        </div>
    </div>
</div>

{% endif %}
 

url.py

 from django.conf.urls import include, url
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
    path('', home_screen_view, name="home"),
    path('account/', account_view, name="account"),
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls', 'blog')),
...

if settings.DEBUG:
    urlpatterns  = static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns  = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
 

Всякий раз, когда я изменяю blog_post.image.url на blog_post.img.url, он отображает страницу, однако затем выдает еще одну ошибку, когда я нажимаю на сообщение без изображения. Я был бы очень признателен, если бы вы показали мне, как решить эту проблему