所以我在看django rest_framework relatedfield,我想出了一个问题,在序列化具有以下架构模型:Django的rest_framework关系
class FooBar(models.Model):
foo_flag = models.BooleanField(default=False)
foo = models.Foreignkey(Foo, null=True, blank=True)
bar_flag = models.BooleanField(default=False)
bar = models.Foreignkey(Bar, null=True, blank=True)
#...
我不敢说我的FooSerializer
或BarSerializer
如果他们是空的。我想到了我的创建与FooBarSerializer
作为serializer method fields例如:
class FooBarSerializer(serializers.ModelSerializer):
foo = serializers.SerializerMethodField('foo_info')
bar = serializers.SerializerMethodField('bar_info')
class Meta:
model = FooBar
def foo_info(self, obj):
if obj.foo_flag:
return FooSerializer()
else:
return False
def bar_info(self, obj):
if obj.bar_flag:
return BarSerializer()
else:
return False
但我真的不知道,如果真的是有后台的区别,当涉及到SerializerMethodField
和RelatedField
。 在这种情况下最好的做法是什么?
你想用标志和字段做什么?我不清楚你为什么使用MethodField开始... – gabrtv