Min*_*nnR 2 django rest frameworks
我正在使用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')
Run Code Online (Sandbox Code Playgroud)
你需要序列化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 = []
Run Code Online (Sandbox Code Playgroud)
当你序列化Answer时AnswerSerializer,你会注意到该question字段是同时序列化的,但是user字段仍然是一个没有序列化的整数.
如果需要序列化外键,则可以显式定义序列化程序中的字段,并且字段名称等于字段名称model,并且该值等于外键模型序列化程序.当模型是序列化时,Answer在这种情况下,对于这种情况,外键字段question将被"扩展" QuestionSerializer,并且其他外键字段仍然保留原始外键值,user在这种情况下,如果您没有明确定义序列化程序中的序列化程序字段.
希望它会有所帮助.
| 归档时间: |
|
| 查看次数: |
2327 次 |
| 最近记录: |