django rest framework 创建方法序列化器
django rest framework create method serializer
我有这段工作代码,我想知道是否可以将代码写得更短。仅仅因为我必须指定代理,所以我正在传递如下所示的每个和平数据。
class ListingSerializer(serializers.ModelSerializer):
rooms = serializers.SerializerMethodField()
def create(self, validated_data):
agent = self.context.get("agent")
listing = Listing.objects.create(
agent=agent,
title=validated_data["title"],
description=validated_data["description"],
floor=validated_data["floor"],
floor_count=validated_data["floor_count"],
price=validated_data["price"],
street=validated_data["street"],
house_no=validated_data["house_no"],
door_no=validated_data["door_no"],
city=validated_data["city"],
country=validated_data["country"],
postal_code=validated_data["postal_code"],
tilstand_report=validated_data["tilstand_report"],
water_consumption_report=validated_data["water_consumption_report"],
energy_level_report=validated_data["energy_level_report"],
property_tax_report=validated_data["property_tax_report"],
)
return listing
您只需将代理“注入”到 validated_data
:
class ListingSerializer(serializers.ModelSerializer):
rooms = serializers.SerializerMethodField()
def create(self, validated_data):
<strong>validated_data['agent'] = self.context['agent']</strong>
return super().create(validated_data)
我有这段工作代码,我想知道是否可以将代码写得更短。仅仅因为我必须指定代理,所以我正在传递如下所示的每个和平数据。
class ListingSerializer(serializers.ModelSerializer):
rooms = serializers.SerializerMethodField()
def create(self, validated_data):
agent = self.context.get("agent")
listing = Listing.objects.create(
agent=agent,
title=validated_data["title"],
description=validated_data["description"],
floor=validated_data["floor"],
floor_count=validated_data["floor_count"],
price=validated_data["price"],
street=validated_data["street"],
house_no=validated_data["house_no"],
door_no=validated_data["door_no"],
city=validated_data["city"],
country=validated_data["country"],
postal_code=validated_data["postal_code"],
tilstand_report=validated_data["tilstand_report"],
water_consumption_report=validated_data["water_consumption_report"],
energy_level_report=validated_data["energy_level_report"],
property_tax_report=validated_data["property_tax_report"],
)
return listing
您只需将代理“注入”到 validated_data
:
class ListingSerializer(serializers.ModelSerializer):
rooms = serializers.SerializerMethodField()
def create(self, validated_data):
<strong>validated_data['agent'] = self.context['agent']</strong>
return super().create(validated_data)