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

Django rest framework custom serializer using foreign key

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 中显示下拉菜单。除此之外,我尝试了 RelatedFieldmany=True 以及其他一些可能的方法。

最后我的 api 将接受两个输入,一个 ID(MyModel 对象)和一个评论。

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

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

尝试使用类似的东西:

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