48 lines
1.8 KiB
Python
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"]
|