У меня есть поле изображения в одном из моих приложений Django, но я хочу иметь возможность хранить ревизии изображения, чтобы позволить мне отображать список в порядке ревизии.Является ли лучший способ сделать это, чтобы хранить изображения отдельно, а затем иметь «родительское» отношение ForeignKey к родительским изображениям?Например:
class Image(models.Model):
name = models.CharField(max_length=50)
parent = models.ForeignKey(Image, null=True)
image = models.ImageField(upload_to='images')
Если родительский элемент отсутствует (null=True
), в изображении не должно быть ревизий.У каждого объекта может быть только один родительский и один дочерний, но количество слоев потенциально не ограничено.
Я не знаю, можно ли обойти несколько слоев потомков без генерации значительного количества SQL-запросов, чтосделать приложение очень неэффективным.Каков наилучший способ представить это в терминах объектов Django?Лучше ли иметь отдельный объект 'ImageRevision', например, для обработки слоев?
Спасибо