У меня есть две модели Post
и Item
, которые надеются иметь свое images
поле, которое ссылаются на экземпляры модели Image
:Django + MySQL: производительность на хранение несколько внешних ключей
class Image(models.Model):
image = models.ImageField(upload_to='images')
Первый подход, который я могу думать от того, является добавление TextField
как к Post
и Item
и хранить image_instance.image.url
х Image
экземпляров, поэтому каждый раз, когда я хочу, чтобы отобразить все изображения с item
или post
, я получить item.images
и разбить строку в массив, и все там есть URL-адреса.
Второй подход заключается в том, чтобы добавить post
и item
в поле Image
как поле с переменным нулевым внешним ключом. Поэтому каждый раз, когда я хочу отображать все изображения post
или item
, я делаю что-то вроде Image.objects.filter(item=some_item_instance)
и извлекаю .image.url
.
Интересно, какой подход лучше на практике, или есть другие более эффективные подходы?
Спасибо. Я возьму ваше решение. Я использовал «ManyToManyField» для нескольких фактических отношений «многие ко многим», но не был уверен, что он также рекомендуется для «один ко многим» (над «ForeignKey' +' related_name'). – Lelouch