所以我在看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