【发布时间】:2015-02-17 00:33:06
【问题描述】:
假设我有这个序列化程序:
class DashboardItemSerializer(ModelSerializer):
offer = serializers.SerializerMethodField()
cart_item = serializers.SerializerMethodField()
stock_details = serializers.SerializerMethodField()
class Meta:
model = OrderItem
fields = ('uuid', 'seller', 'total', 'tax', 'offer', 'shipping_address', 'cart_item', 'stock_details')
def offer(self, obj):
return 123
def cart_item(self, obj):
return 123
def stock_details(self, obj):
return 123
offer、cart_item 和 stock_details 这些字段是模型字段,我想用它覆盖它以返回不同的值,但看起来 DRF 忽略了自定义字段并返回 obj 中的原始值。
如果我不将它们放在fields 列表中,数据将根本不包含这些字段。
class DashboardItemSerializer(ModelSerializer):
offer = serializers.SerializerMethodField()
cart_item = serializers.SerializerMethodField()
stock_details = serializers.SerializerMethodField()
class Meta:
model = OrderItem
fields = ('uuid', 'seller', 'total', 'tax', 'shipping_address')
def offer(self, obj):
return 123
def cart_item(self, obj):
return 123
def stock_details(self, obj):
return 123
一种方法是define fields explicitly,但我想知道是否有更简单的方法。
【问题讨论】:
-
你为什么说
if I don't put them in the fields list, the data will simply not include those fields. -
查看更新的问题
标签: django django-rest-framework