Django: изображение блога не загружается должным образом - PullRequest
0 голосов
/ 06 августа 2020

Я уверен, что я сделал что-то очень глупое, но когда я пытаюсь загрузить свою фотографию профиля на свой сайт блога, даже когда я добавляю ее через страницу администратора, изображение не появляется ..

так вот что происходит,

blog pi c:

1

the picture right next to Kimmc6008, I should see my image, but somehow failed..

here's the code, I will upload more if needed. models.py

class Author(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    profile_picture = models.ImageField()

    def __str__(self):
        return self.user.username


class CategoryBlog(models.Model):
    title = models.CharField(max_length=20)

   def __str__(self):
        return self.title


class Post(models.Model):
    title = models.CharField(max_length=100)
    overview = models.TextField()
    timestamp = models.DateTimeField(auto_now_add=True)
    comment_count = models.IntegerField(default=0)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
    thumbnail = models.ImageField()
    categories = models.ManyToManyField(CategoryBlog)
    featured = models.BooleanField(null=True)

    def __str__(self):
        return self.title

views.py

def blog(request):
    post_list = Post.objects.all()
    context = {
        'post_list': post_list
    }
    return render(request, 'blog.html', context)

and my html

<!-- post -->
            {% for post in post_list %}
           
... 20 мая | 2016 {% для кота в post.categories.all%} {{cat}} {% endfor%} {{post.title}} {{post.overview}} ... {{post.author.user.username}} {{post.timestamp | timesince}} a go {{post.comment_count}} {% endfor%}

Спасибо за вашу помощь !!

EDIT Я заметил, что мне не хватает MEDIA_ ROOT в моем settings.py. Может быть, это причина того, почему?

1 Ответ

1 голос
/ 06 августа 2020

Добавьте аргумент upload_to в свой ImageField

profile_picture = models.ImageField(upload_to='pictures')

И это основные c настройки, которые вам нужны в вашем django проекте для обработки изображений / файлов

проект / urls.py

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

urlpatterns = [..]

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

settings.py

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...