gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 09:49:41 24 4
gpt4 key购买 nike

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

最佳答案

仅供引用

假设你有三个模型:

class User(model.Model):
username = model.CharField('username', max_length=10)

class Question(model.Model):
title = models.CharField('title', max_length=10)

class Answer(model.Model):
user = model.ForeignKey(User)
question = model.ForeignKey(Question)
body = model.TextField('the answer body')

并且您需要序列化 ​​ 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 = []

连载时 AnswerAnswerSerializer ,您会注意到 question字段同时序列化,但是 user field 仍然是一个没有序列化的整数。

如果需要序列化外键,可以在serializer中显式定义一个字段,字段名等于 model中的字段名,该值等于外键模型序列化器。当模型序列化时, Answer在这种情况下,外键字段, question对于这种情况,将使用 QuestionSerializer“扩展” , 其他外键字段仍保持原外键值, user在这种情况下,如果您尚未在序列化程序中明确定义序列化程序字段。

希望它会有所帮助。

关于django - 如何在 Django Rest Framework 中显示单个字段的深度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40541822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com