gpt4 book ai didi

Django Rest Framework覆盖modelserialzer中的模型字段

转载 作者:行者123 更新时间:2023-12-03 15:45:06 26 4
gpt4 key购买 nike

假设我有这个序列化程序:

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_itemstock_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 ,但我想知道是否有更简单的方法。

最佳答案

您忘记添加 get_前缀。你的方法名称应该有 get_ SerializerMethodField docs 中提到的前缀

def get_offer(self, obj):
return 123

def get_cart_item(self, obj):
return 123

def get_stock_details(self, obj):
return 123

关于Django Rest Framework覆盖modelserialzer中的模型字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28552784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com