refactor update method to use dynamic field assignment in quota serializer

This commit is contained in:
2025-10-21 15:35:54 +03:30
parent 5379f43af4
commit 8355d4af57

View File

@@ -83,27 +83,33 @@ class QuotaSerializer(serializers.ModelSerializer):
def update(self, instance, validated_data): def update(self, instance, validated_data):
""" Custom Update """ """ Custom Update """
instance.quota_id = validated_data.get('quota_id', instance.quota_id) fields = [
instance.quota_code = validated_data.get('quota_code', instance.quota_code) "quota_id",
instance.quota_weight = validated_data.get('quota_weight', instance.quota_weight) "quota_code",
instance.remaining_weight = validated_data.get('remaining_weight', instance.remaining_weight) "quota_weight",
instance.quota_distributed = validated_data.get('quota_distributed', instance.quota_distributed) "remaining_weight",
instance.product = validated_data.get('product', instance.product) "quota_distributed",
instance.sale_type = validated_data.get('sale_type', instance.sale_type) "product",
instance.sale_unit = validated_data.get('sale_unit', instance.sale_type) "sale_type",
instance.month_choices = validated_data.get('month_choices', instance.month_choices) "sale_unit",
instance.sale_license = validated_data.get('sale_license', instance.sale_license) "month_choices",
instance.group = validated_data.get('group', instance.group) "sale_license",
instance.has_distribution_limit = validated_data.get('has_distribution_limit', instance.has_distribution_limit) "group",
instance.distribution_mode = validated_data.get('distribution_mode', instance.distribution_mode) "has_distribution_limit",
instance.has_organization_limit = validated_data.get('has_organization_limit', instance.has_organization_limit) "distribution_mode",
instance.base_price_factory = validated_data.get('base_price_factory', instance.base_price_factory) "has_organization_limit",
instance.base_price_cooperative = validated_data.get('base_price_cooperative', instance.base_price_cooperative) "base_price_factory",
instance.final_price = validated_data.get('final_price', instance.final_price) "base_price_cooperative",
instance.is_closed = validated_data.get('is_closed', instance.is_closed) "final_price",
instance.closed_at = validated_data.get('closed_at', instance.closed_at) "is_closed",
instance.limit_by_herd_size = validated_data.get('limit_by_herd_size', instance.limit_by_herd_size) "closed_at",
instance.pos_sale_type = validated_data.get('pos_sale_type', instance.pos_sale_type) "limit_by_herd_size",
"pos_sale_type",
]
for field in fields:
setattr(instance, field, validated_data.get(field, getattr(instance, field)))
instance.save() instance.save()
# update assigned organization many to many # update assigned organization many to many