如何在Django Rest Framework中显示单个字段的深度?

时间:2016-11-11 05:43:26

标签: django rest frameworks

我在序列化程序上使用depth = 1来显示外键字段的详细信息。然而,它也显示了我并不真正需要的另一个外键领域的细节。如何显示一个字段的详细信息而不显示另一个字段的详细信息?

1 个答案:

答案 0 :(得分:5)

仅供参考

假设您有三个模型:

Answer

您需要序列化Question,并显示User的详细信息,但不显示class QuestionSerializer(serializers.ModelSerializer): class Meta: model = Question exclude = [] class AnswerSerializer(serializers.ModelSerializer): question = QuestionSerializer(many=False, read_only=True) class Meta: model = Answer exclude = [] 的详细信息,然后您可以像这样定义序列化工具:

Answer

当您使用AnswerSerializer序列化question时,您会注意到user字段同时是序列化的,但model字段仍然是没有序列化的整数。< / p>

如果需要序列化外键,可以显式定义序列化程序中的字段,字段名称等于Answer中的字段名称,该值等于外键模型序列化程序。当模型序列化时,question在这种情况下,外壳键字段QuestionSerializer对于这种情况,将使用user“扩展”,其他外键字段仍保留原点如果您没有在序列化程序中明确定义序列化程序字段,则在这种情况下为外键值{{1}}。

希望它会有所帮助。