такая структура:
class Parent:
field = ...
class Child:
parent = ForeignKey(Parent)
Нужно в чайлде накрутить проверок, что чайлд создаётся только для определенных парентов. Мои попытки:
check=models.Q(parent__field='x')
->
django.core.exceptions.FieldError: Joined field references are not permitted in this query
Ок, зашёл с экспрешеннов вместо Q:
models.Exists(Parent.objects.filter(
field='x',
pk=OuterRef('parent_id')
))
->
This queryset contains a reference to an outer query and may only be used in a subquery.
Exists вроде бы сабкласс сабквери, но обернул и получил:
AttributeError: 'Subquery' object has no attribute 'order_by'
Вроде нельзя на связанные модели, limit_choices_to можно ограничить, ну и в clean логику проверки кинуть
Обсуждают сегодня