Django的。文件字段名称

时间:2015-01-31 02:47:01

标签: python django file python-imaging-library pillow

Django 1.7,Pillow 2.7。

我需要在文件字段中为不同的文件使用相同的文件名。

Django模型:

class FileStorage(models.Model):
    image = models.ImageField(null=True, blank=True)

代码:

item = FileStorage.objects.get(id=1)

image_buffer = StringIO.StringIO()
new_image = Image.new('RGB', (100, 100))
new_image.save(image_buffer, 'JPEG')
image_file = InMemoryUploadedFile(image_buffer, 'image', 'test.jpg', 'image/jpeg', image_buffer.len, None)

item.image.save('test.jpg', image_file)

print item.image.name
# hm4730iiecd8tw2.jpg

image_buffer = StringIO.StringIO()
new_image = Image.new('RGB', (100, 100))
new_image.save(image_buffer, 'JPEG')
image_file = InMemoryUploadedFile(image_buffer, 'image', 'test.jpg', 'image/jpeg', image_buffer.len, None)

item.image.save('test.jpg', image_file)

print item.image.name
# 2ji9eni7ywqqndf.jpg

我有点不清楚为什么Django不保留我的文件名。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您应该为ImageField定义upload_to选项:

class FileStorage(models.Model):
    image = models.ImageField(upload_to="media/", null=True, blank=True)