2016-06-12 2 views
5

Bar에는 Foo에 ForeignKey, Foo에 많은 Bar가 있습니다. 장고에서 양식 사용하기 : foreign key defaults to a select list input.Django Rest Framework에서 외래 키 선택 드롭 다운

이 기능은 Django Rest Framework에서 먼저 Browsable API 용으로, 그리고 Template HTML Renderer 용으로 사용하고자합니다. 나는 nested relations in the docs 이상이고 this related question을 보았지만 이해가되지 않습니다. 최소한 그것이 나를 생각하게 만든다. 나는 장고 양식 (Django Forms)과 같은 드롭 다운 동작을보아야한다.

궁극적으로 나는 내가 즉 새로운 바 전체 JSON 데이터에 양식 필드를 변경하는 양식을, 공예 손으로 TemplateHTMLRenderer와 함께 할 수 있으리라 생각 바를 업데이트/생성 할 때 우리가 기존 푸를 선택할 수있는 방법을 원하는 즉, 기존 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 i.e. 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') 

중첩 된 데이터를 저장하려면 serializer를 업데이트하고 만들어야한다는 것을 알고 있습니다. 지금 이것을 구현하십시오. 그러나 나는 머리를 쓸 수 없다. DRF에 Foo 옵션의 일부 표현으로 선택 입력을 채우려면 어떻게해야 할까?

나는 명백한 무엇인가 놓치고 있습니까? 여기 RTFM (다시) downvotes가 와서 :/

답변

1

이것은 5 개월 전 이었으므로 아마도 지금까지 답을 얻을 수있을 것입니다.하지만 Google 검색을 통해 나를 시작하게되었습니다.

그래서 당신이나 다른 사람들이 여기로 와서 일 까봐 내가 찾은 답은 최고의 일이었다

Django admin foreign key dropdown with custom value

는 기본적 필드/필드로 사용하는 두 가지 방법 중 하나를 말할 필요 드롭 다운의 캐릭터 라인