sbt-idp/cope2n-api/fwd_api/serializers/SemiAutoCorrection.py

48 lines
1.8 KiB
Python

from rest_framework import serializers
from ..models.SemiAutoCorrection import SemiAutoCorrection
def default_json_fields():
return {"invoice_no": None, "imei_number": None, "retailername": None, "purchase_date": None, "sold_to_party": None}
class SemiAutoCorrectionSerializer(serializers.ModelSerializer):
class Meta:
model = SemiAutoCorrection
fields = '__all__'
def to_internal_value(self, data):
"""
Customize the deserialization process for the JSONField fields.
"""
internal_value = super().to_internal_value(data)
# Update the JSONField fields
internal_value['feedback_result'] = self.update_json_field(data.get('feedback_result'))
internal_value['reviewed_result'] = self.update_json_field(data.get('reviewed_result'))
internal_value['predict_result'] = self.update_json_field(data.get('predict_result'))
internal_value['reviewed_accuracy'] = self.update_json_field(data.get('reviewed_accuracy'))
internal_value['feedback_accuracy'] = self.update_json_field(data.get('feedback_accuracy'))
internal_value['reviewed_accuracy'] = self.update_json_field(data.get('reviewed_accuracy'))
return internal_value
def update_json_field(self, value):
"""
Helper method to update the JSONField value.
"""
if value is None or value == "":
return default_json_fields()
else:
_value = default_json_fields()
_value.update(value)
return _value
class SemiAutoCorrectionScanSerializer(serializers.ModelSerializer):
start_date = serializers.DateTimeField()
end_date = serializers.DateTimeField()
class Meta:
model = SemiAutoCorrection
fields = ["id", "start_date", "end_date"]