#sql #django #django-models
#sql #django #django-модели
Вопрос:
У меня есть три модели:
- Продукт
- Вариация
- BundledItem
Variation и BundledItem имеют отношение «многие к одному» к продукту.
«Тип» продукта (CharField с вариантами выбора) может быть «простым», «переменным» или «пакетом».
Я хочу убедиться, что вариация может быть связана только с продуктом типа ‘variable’, а BundledItem может быть связан только с продуктом типа ‘bundle’.
Как я могу реализовать это как условие или проверить тип продукта как часть связывания Variant / BundledItem?
Ответ №1:
Вы можете отфильтровать продукты в запросе, чтобы получить желаемый тип:
Product.object.filter(type='simple')
Это даст вам все продукты с типом «простой»
После этого вы можете отфильтровать его дальше, например, по идентификатору или названию продукта:
Product.object.filter(name='my_product_name')
Этот тип запросов также может быть выполнен одной командой путем объединения фильтров:
Product.object.filter(type='simple', name='my_product_name')
Проверьте официальные документы по созданию запросов, это очень полезно