Здравствуйте, я имею такую ситуацию в своих моделях:SQL и Джанго: Создание агрегации на уровне базы данных
class Package(models.Model):
name
class SetOfItems(models.Model)
name
class Item(models.Model):
package(FK)
setofitems(FK)
И проблему я пытаюсь решить это для упрощения запросов от SetOfItems. Например. в случае, если мне нужно будет получить имя пакета из SetOfItems, мне нужно будет написать что-то вроде SetOfItems.objects.values ('item__package__name'), что на самом деле не работает, хорошо на сайте администратора (например, если я создаю дополнительный поле).
Итак, я ищу, чтобы хранить информацию о пакетах в модели SetOfItem, не делая прямого отношения (поскольку я думаю, что если я поставил FK, там будет страдать целостность данных, например, можно будет на упаковке внутри Item и еще один в SetOfItems).
Возможно, есть какая-то возможность иметь представление SQL или что-то вроде этого ... чтобы столбец таблицы автоматически был предварительно заполнен из другой таблицы? Или что-то другое?
Ну, это вызовет довольно много запросов, если я захочу отобразить пакеты в SetOfItems admin –
Вы имеете в виду в списке изменений? Если вы беспокоитесь об этом, переопределите 'get_queryset' для извлечения QuerySet, который использует' prefetch_related' для получения всех пакетов. –
Не только это. Но и сделать что-то вроде разных. –