我有一个简单的表单,用于提交工作正常的文件。我已经将文件从一个字段移到了自己的表中,现在我真的很挣扎,因为我需要将文件添加到额外的表中并将正确的外键保存在表格表中。我在save()中尝试了各种片段,在视图中抓取文件并将文件添加为额外字段,但没有任何工作正常。
相当明显的错误是:
"无法分配InMemoryUploadedFile:Resource.file必须是文件 实例"
class File(models.Model):
filename = models.CharField('Filename', max_length=200)
file = models.FileField()
mimetype = models.CharField('Mimetype', max_length=200)
pub_date = models.DateTimeField('date published', auto_now_add=True, blank=True)
def __str__(self):
return self.filename
class Resource(models.Model):
list_display = ('title', 'approved')
def __str__(self):
return str(self.title)
title = models.CharField('Title', max_length=200)
description = models.TextField('Description', null=True)
file = models.ForeignKey(File)
... cut for brevity
class ResourceForm(forms.ModelForm):
class Meta:
model = Resource
答案 0 :(得分:0)
问题是您将文件分配到外键字段。您需要先实例化File
对象,然后设置为Resource
对象。
file = File(filename="test", file=temp_data, mimetype='pdf')
file.save()
resource.file = file
resource.save()