在CreateView中上传图片

时间:2019-06-20 02:17:02

标签: python django python-3.x image upload

我的项目中有一个CreateView,用于发布类似tweet的帖子。它具有标题和内容。 在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 :(得分:0)

picture_upload = models.ImageField()

如果保留原样,它将上载到MEDIA_ROOT,这是推荐做法,但是,如果您确实要修改该目录,则可以使用upload_to属性。

from django.conf import settings
picture_uploaded = models.ImageField(upload_to=settings.STATIC_URL + '/uploaded_pic')