Загрузка изображения в CreateView - PullRequest
0 голосов
/ 20 июня 2019

У меня есть CreateView в моем проекте, чтобы опубликовать твитоподобную публикацию. У него есть заголовок и содержание. Это выглядит так в views.py

class PostCreateView(LoginRequiredMixin, CreateView):
    model = Post
    fields = ['title', 'content']


    def form_valid(self, form):  # Author for post (required- if no- error)
        form.instance.author = self.request.user
        return super().form_valid(form)

И я хотел бы добавить столбец picture-upload, чтобы люди могли загрузить фотографию с сообщением.

Мой models.py выглядит так

class Post(models.Model):
    title = models.CharField(max_length=100, verbose_name='タイトル')
    content = models.TextField(verbose_name='内容')
    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})

У меня уже есть папка uploaded_pic в моем static с разрешением 777. Подскажите пожалуйста, как добавить туда работающий picture-upload столбец

1 Ответ

0 голосов
/ 20 июня 2019
picture_upload = models.ImageField()

Если оставить его как есть, он будет загружен в MEDIA_ROOT, что рекомендуется, но если вы действительно хотите изменить этот каталог, вы можете использовать свойство upload_to.

from django.conf import settings
picture_uploaded = models.ImageField(upload_to=settings.STATIC_URL + '/uploaded_pic')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...