Я пытаюсь в течение нескольких часов выполнить самую глупую миграцию, используя Юг, но каким-то образом я с треском провалился ... Я пытаюсь перейти на Sorl-Thumbnail.
Вот мойПереходная модель:
class Deal(models.Model):
image = ImageWithThumbsField(upload_to='deal_images',null=True,blank=True,sizes=(200,150),))
new_image = ImageField(upload_to='new_deal_images',default='deal_images/thumb_deal_noimg.gif')
И моя прямая миграция такова:
def forwards(self, orm):
for deal in orm.Deal.objects.all():
try:
image_name = deal.image.name.split('/')[1]
file_ = File(deal.image.open()) # I've also tried the method read()
deal.new_image.save('new_deal_images/'+image_name,file_,save=False)
except:
deal.new_image = None # For the default image kick in
deal.save()
это самая последняя версия этого кода.Все остальные, в основном, не смогли правильно разместить файл изображения в новом каталоге.
Help ...:)
Время идет ....
Хорошо... После нескольких тестов я получил этот код:
def forwards(self, orm):
for deal in orm.Deal.objects.all():
file_content = ContentFile(deal.image.read())
deal.new_image.save(deal.image.name,file_content) *
deal.save()
Изображения копируются и сохраняются в новом столбце (new_image), но дело в том, что все файлы сохраняются в корне MEDIA_ROOT,не в нужном подкаталоге ('new_deal_images').Я попробовал это в * строке, но все равно не повезло:
deal.new_image.save('new_ideal_images/'+deal.image.name,file_content)
Подоконник не работает ...
Пожалуйста, помогите ...:)
Другое время идетby ....
ок ... Я думаю, что с Югом есть серьезная проблема:
Этот код отлично работает в Django Shell, копируя все файлы в нужное место:
15 for deal in Deal.objects.all():
16 image_path = deal.image.path·
17 file_ = File(open(image_path,'rb'))
18 deal.new_image.save(deal.image.name,file_)
19 deal.save()
Но этот код в файле миграции не создает дамп всех файлов в корневом каталоге MEDIA_ROOT, не перемещая его в правильный подкаталог:
15 for deal in orm.Deal.objects.all():
16 image_path = deal.image.path·
17 file_ = File(open(image_path,'rb'))
18 deal.new_image.save(deal.image.name,file_)
19 deal.save()