2015-03-22 5 views
1

Вызов OPTIONS на ViewSet сделает приятную презентацию объекта, чтобы помочь создать форму для ее отправки в пользовательский интерфейс. Тем не менее, когда есть отношения ForeignKey, он попытается отобразить все доступные сущности для этих отношений. Мне нужно только определенное подмножество, которое можно выбрать. Есть ли способ ограничить этот набор запросов в поле, как в Django Forms (путем установки атрибута form.field.queryset)?Django Rest Framework - ограничивать набор запросов наследования ForeingKey на OPTIONS?

ответ

1

В Django REST framework 3 вы можете установить the queryset argument непосредственно в поле, чтобы контролировать, какие объекты разрешены для выбора.

Для автоматически генерируемых полей это обычно заканчивается Model.objects.all(). Вы можете подтвердить это, вызвав repr(YourSerializer()) и посмотрев, как выглядит автоматически созданное поле. Вы можете переопределить это на автоматически сгенерированных полях, установив запрос in extra_kwargs на уровень сериализатора.

+0

поэтому, если бы я хотел, чтобы запрос был чем-то вроде 'Model.objects.exclude (id = self.id)' как бы я ссылался на себя? – abolotnov

+0

@abolotnov вы можете определить класс поля сериализатора и установить метод 'get_queryset', там, вы можете получить доступ к self.parent или что-то еще. – soooooot

Смежные вопросы