У меня есть 3 Модели / Сущности, A, B, C (бэкэнд - django).
На внешнем интерфейсе у меня есть 3 пустых поля, в которые мне нужно добавить экземпляры A, B, C.Количество доступных экземпляров для A, B, C может быть от 0 до бесконечности.
В идеале я должен показать 1 из A, 1 из B и 1 из C, но иногда у любой из сущностей не может быть экземпляров.,Не может быть ни одного, ни одного, ни нескольких без экземпляров.
Мой базовый подход заключается в использовании ifs
, но это неэффективно, см. Только одну из ветвей в псевдокоде:
if not C:
if A:
if not B:
show up to 3 of A if they are available
elif B:
if at least 2 of A:
show 2 of A and 1 Of B
if 1 of A:
show 1 of A and up to 2 of B
elif not A:
show up to 3 of B if exist
Помимо десятков ifs
во всех ветвях, он не масштабируется, например, если я добавлю новую сущность и / или поле в будущем.
Итак, я ищу алгоритмэто может масштабироваться.Я использую Python, Django, PostgreSQL.Я извлекаю данные, просто:
A.objects.all().order_by('-id')[:3]