Django使用外键休息框架自定义序列化程序

时间:2016-05-20 09:06:41

标签: django django-rest-framework django-serializer

class MyModel():
    # fields

class MyModelSerializer(serializers.ModelSerializer):
     class Meta:
        model = MyModel

class CustomSerializer(serializers.Serializer):
    comment = serializers.CharField(required=True)
    mymodel = MyModelSerializer() #?? here is the problem

我想创建一个API,它将采用两个参数,首先是一个有效的MyModel实例id(来自可浏览api页面的下拉列表),第二个是comment

我尝试了上面的方法,但没有在我的HTML中显示下拉列表。除此之外,我尝试了RelatedField many=True以及其他一些可能的方法。

最后我的api会输入两个输入,一个ID(MyModel对象)和一个注释。

http://www.django-rest-framework.org/api-guide/fields/#multiplechoicefield

http://www.django-rest-framework.org/api-guide/fields/#listfield

1 个答案:

答案 0 :(得分:2)

尝试使用以下内容:

class CustomSerializer(serializers.Serializer):
    comment = serializers.CharField(required=True)
    mymodel = serializers.ChoiceField(choices=list(MyModel.objects.all().values_list('id', flat=True)))