您好,我有一个项目,我希望用户上传标题和正文文本以及一张名为问题的图片,但是当我提交表单时,只有标题和正文不会保存图片。我更改了模板中的表单标签,但没有帮助。提前致谢。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.titleclass 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.pyclass 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.pyclass QuestionDetail(FormMixin, generic.DetailView): model = Question template_name = 'question_detail.html' context_object_name = 'question' form_class = AnswerForm我将表单部分从我的模板更改为 {{form}} ,在那里我可以看到表单并提交它,但是图片还是没有上传。
1 回答

海绵宝宝撒
TA贡献1809条经验 获得超8个赞
您需要enctype
在表单上指定属性:
<form method="post" style="margin-top: 1.3em;" enctype="multipart/form-data">
否则,request.FILES
将是空的。
添加回答
举报
0/150
提交
取消