无法在 Django 模型中上传图像

您好,我有一个项目,我希望用户上传标题和正文文本以及一张名为问题的图片,但是当我提交表单时,只有标题和正文不会保存图片。我更改了模板中的表单标签,但没有帮助。提前致谢。


models.py    


class Question(models.Model):

    author = models.ForeignKey(User, on_delete= models.CASCADE,related_name='question_author')

    question=models.ImageField(upload_to='question/',blank=True,name="question")

    created_on = models.DateTimeField(auto_now_add=True)

    slug = models.SlugField(max_length=20, unique=True)

    title = models.CharField(max_length=128)

    body = models.CharField(max_length=400)


    class Meta:

        ordering = ['-created_on']


    def save(self, *args, **kwargs):

        self.slug = self.slug or slugify(self.title)

        super().save(*args, **kwargs)



    def __str__(self):

        return self.title



class Answer(models.Model):

    author = models.ForeignKey(User, on_delete= models.CASCADE,related_name='answer_author')

    question = models.ForeignKey('Question', on_delete=models.CASCADE, related_name='question_answer')

    answer=models.ImageField(upload_to='question/',blank=True)

    created_on = models.DateTimeField(auto_now_add=True)

    body = models.CharField(max_length=400)


    class Meta:

        ordering = ['-created_on']



    def get_absolute_url(self):

        return reverse("comment_detail",kwargs={'pk':self.pk})

forms.py


class QuestionForm(forms.ModelForm):

    class Meta:

        model=Question

        fields=['question','author','title','body']


class AnswerForm(forms.ModelForm):

    class Meta:

        model=Answer

        fields=['author','answer','body']

views.py


class QuestionDetail(FormMixin, generic.DetailView):

    model = Question

    template_name = 'question_detail.html'

    context_object_name = 'question'

    form_class = AnswerForm



我将表单部分从我的模板更改为 {{form}} ,在那里我可以看到表单并提交它,但是图片还是没有上传。


人到中年有点甜
浏览 90回答 1
1回答

海绵宝宝撒

您需要enctype在表单上指定属性:<form method="post" style="margin-top: 1.3em;" enctype="multipart/form-data">否则,request.FILES将是空的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python