Как зарегистрировать файл изображения в Django ImageField без использования формы и без копирования файлов?
У меня есть несколько тысяч JPG, расположенных в / images, и я хочу зарегистрировать их в модели изображений, аналогичной:
class Image(models.Model):
image = models.ImageField(upload_to='images', max_length=1000)
hash = models.CharField(max_length=1000, unique=True)
Однако все документы, которые я могу найти при «загрузке» изображений в проект Django, предполагают, что я делаю это через форму, которая также подразумевает, что изображение будет скопировано в MEDIA_ROOT. Я не использую форму, и я не хочу переписывать несколько тысяч JPG, поскольку они уже там, где они должны быть. Я просто хочу создать записи изображений, которые будут хранить имя файла всех изображений, которые у меня есть в настоящее время. Я написал простой сценарий Python для циклического перебора каждого изображения, но не могу найти, как правильно создать запись об изображении.
Я также хочу сохранить хэш содержимого изображения, чтобы избежать дублирования записей. например, * +1008 *
import hashlib
content = open(image_filename).read()
h = hashlib.sha512()
h.update(content)
imgobj.hash = h.hexdigest()
imgobj.save()
Могу ли я переопределить метод model.Model.save () по умолчанию, чтобы сделать это?