Я работаю над проектом (простой сайт в социальных сетях). Зарегистрированные пользователи должны создавать сообщения с текстом и изображением.
Когда я отправляю форму, изображение не загружается, и возникает ошибка ValueError, сообщающая, что у атрибута 'image' нет файла, связанного с ним.
Единственный способ прикрепить изображение к сообщению - из админ-панели, но я не хочу этого делать.
Я думаю, что есть проблема в views.py - я видел много постов, где это делается с помощью представлений на основе функций, но мне не удалось найти решение с помощью представлений на основе классов.
Я довольно новичок в Django и, скорее всего, мне не хватает чего-то маленького (или, по крайней мере, я на это надеюсь).
Не могли бы вы взглянуть и посоветовать, как поступить. Любая помощь будет высоко ценится!
models.py
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField(null=True)
image = models.ImageField(upload_to='post_pics/', null=True, blank=True)
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('post-detail', kwargs={'pk': self.pk})
views.py - CBV для создания поста
class PostCreateView(LoginRequiredMixin, CreateView):
model = Post
fields = ['title', 'content', 'image']
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)