Почему фотография пользавателя не сохраняеться в базе и в static/images/?

Ошибок нету, текст сохраняеться а img нет.

models.py:
class Post(models.Model):
    date = models.DateTimeField('Создан пост был:', default=timezone.now(), blank=True)
    text = models.TextField('Ваши новости:', max_length=1500)
    img = models.ImageField('Фотография:', upload_to = 'static/images', blank = True)

    def __str__(self):
        return self.username

class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ['text', 'img']


Views.py:
form = PostForm()
    if request.method == "POST":
        if request.user.is_authenticated == True:
            form = PostForm(request.POST, request.FILES)
            if form.is_valid():
                post = form.save(commit = False)
                post.date = timezone.now()
                #post.img = request.POST['img']
                post.save()
                context = Post.objects.order_by('-date')[:5000]
                return redirect('/user/profile/news')
    return render(request, "fr/addpost.html", {'form': form})


MEDIA URL И MEDIA ROOT все работает! Когда создаю пост через базу все сохраняеться!
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
@noremorse_ru
date = models.DateTimeField('Создан пост был:', default=timezone.now(), blank=True)

Тут вместо default лучше добавить auto_now_add=True, иначе есть риск наплодить лишних миграций
context = Post.objects.order_by('-date')[:5000]
Тут это вообще не к месту, у тебя функция возвращает редирект, и этот контекст никто не увидит, просто зря потраченные ресурсы
upload_to = 'static/images'
Тут ты указываешь путь относительно корневой папки с медиа файлами, т.е. полный путь в твоем случае будет типа ***/media/static/images
И на конец, ответ на вопрос:
надо в html форме добавить атрибут enctype="multipart/form-data"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы