выпадающий выбор внешнего ключа в Django Rest Framework

Бар имеет ForeignKey для Foo, многие бары для одного Foo. Используя Forms в Django, по умолчанию используется внешний ключ для ввода списка выбора .

Я хотел бы использовать эту функциональность в Django Rest Framework, сначала для браузера API, а затем для шаблона HTML Renderer. Я занимался вложенными отношениями в документах, а также видел этот родственный вопрос , но это не имеет смысла. По крайней мере, это заставляет меня думать, что я должен видеть падение вниз, так же, как фондовый Django Forms.

в конечном счете, я хочу, чтобы мы могли выбрать существующий Foo при создании / обновлении бара. Я считаю, что могу сделать это с помощью TemplateHTMLRenderer, вручную создав форму, которая изменяет поля формы на полные данные JSON, то есть новую панель, указывающую на существующую Foo, предполагая, что я пишу обновление и создаю методы в Bar. Но это звучит для меня так, как будто я пропустил «легкий путь».

class BarSerializer(serializers.ModelSerializer): # This shows Foo.foo within serialzied Bar JSON: # I suspect I am missing something with the relation that would allow me to select foo from a list foo = serializers.SlugRelatedField(many=False, read_only=True,slug_field="foo") class Meta: model = Bar fields = ('foo','some_value','another_value') class FooSerializer(serializers.ModelSerializer): owner = serializers.ReadOnlyField(source='owner.username') # This shows the Bar serialized within the Foo JSON ie nested serialization bars = BarSerializer(many=True); # reverse rel: related_name='bars' in Foo model class Meta: model = Foo # 'bars' is the related name pointing from bar to foo fields = ('bars', 'foo', 'owner') 

Я понимаю, что для сохранения вложенных данных мой сериализатор нуждается в обновлении и создании. Реализуем это сейчас. Но я не могу опустить голову, что бы я сделал, чтобы DRF заполнил выбранный ввод с некоторым представлением параметров Foo?

Мне не хватает чего-то очевидного? Здесь приходят RTFM (снова) downvotes: /

Это было пять месяцев назад, так что у вас, вероятно, есть ответ, но мой поиск в Google привел меня сюда, чтобы начать.

Так что, если вы окажетесь или пришли сюда, то ответ, который я нашел лучшим, был:

Выпадающий список внешнего ключа Django admin с пользовательским значением

В основном вам нужно сказать это одним из двух способов, которые поле / поля следует использовать в качестве строки для раскрывающегося списка.