2015-01-31 1 views
0

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

Вы должны определить upload_to вариант к вашему ImageField:

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

атрибут upload_to не влияет на имя файла. Я не понимаю, почему django использует имя автогенерируемого файла, когда я использую 'test.jpg' для имени файла. – Tom

 Смежные вопросы

  • Нет связанных вопросов^_^