В моем проекте у меня есть приложение со школьной моделью и моделью школьного обучения.django изменить местоположение файла изображения с помощью setattr
Модель школа имеет поля для различных изображений, такие как логотип, печать и т.д.:
seal_image = models.ImageField(upload_to="sealimgs", null=True, blank=True)
logo_image = models.ImageField(upload_to="logos", null=True, blank=True)
Модель schoolsuggestion имеет поле для того, что соответствующее поле школы и поля изображения.
field_name = models.CharField(max_length=255, default="")
image_field = models.ImageField(upload_to='img', null=True, blank=True)
Когда школа предложение будет одобрен, я переписал сохранить так, что он получит поле ассоциированных школ через GetAttr (поле_формы) и установить его с SetAttr (field_name, image_field) (я упрощающий синтаксис, но вы получаете идею).
Проблема в том, что файл по-прежнему сохраняется в img, предположительно потому, что я использую setattr, а не специальное поле для сохранения изображения, которое вывело бы его в правильный каталог.
Так как мне это сделать? Имеет смысл, что я мог бы каким-то образом получить значение атрибута upload_to атрибута, каким-то образом переустановить изображение с помощью этого пути к файлу, а затем использовать setattr на сохраненном изображении, но я не могу понять, как сделать первые два.
Так что ваша проблема в том, как получить доступ к модели поля вместо значения поля экземпляра экземпляра, не так ли? – okm
Если это так, ваше решение в порядке. Также используйте 'os.path.join' для конкатенации пути. – okm