【发布时间】:2018-06-18 07:35:16
【问题描述】:
我有一个嵌套的序列化程序,我想将父序列化程序数据传递给孩子。但我不明白我该怎么做。我想做这样的事情:
class BookingSerializer(serializers.ModelSerializer):
use_additional_fields = serializers.BooleanField()
persons = PersonSerializer(many=True)
class PersonSerializer(serializers.ModelSerializer):
def validate_date_of_birth(self, value):
if parent.use_additional_fields and not value:
raise serializers.ValidationError(_('Date of birth is required'))
return value
class Meta:
model = Person
exclude = ('phone', 'date_of_birth')
所以如果用户在父序列化程序中选择use_additional_fields,那么我在子序列化程序中的一些字段应该是必需的
【问题讨论】:
-
您可以覆盖 BookingSerializer 中的验证,并从那里调用 PersonSerializer 的验证函数。
标签: django django-rest-framework serialization