Как создать объект get или create из данных сериализатора

Я передаю два сериализатора с одним представлением. При создании объекта я хочу сначала создать объект CaseId, поэтому я вытаскиваю CaseObject из проверенных данных.

Я хочу получить или создать объект с заданными данными. Потому что я хочу передать его объекту CaseMessage в качестве ссылки.

class CaseMessageSerializer(serializers.ModelSerializer):
    case_id = serializers.IntegerField(required=False)
    case_object = CaseIdSerializer(required=False)
    message_type = ChoicesFieldSerializer(choices=CaseMessage.MESSAGE_TYPE)
    body_format = ChoicesFieldSerializer(choices=CaseMessage.BODY_FORMAT)

    class Meta:
        model = CaseMessage
        fields = "__all__"
        depth = 1

    def create(self, validated_data):
        raw_case_object = validated_data.pop('case_object', None)

        # Not Getting or creating object with the given data.
        case = CaseId.objects.get_or_create(**raw_case_object)

        case_message = CaseMessage(**validated_data)
        case_message.caseid = case
        case_message.save()

        if not CaseAudience.objects.filter(case_id=case).exists():
            case_audiance = CaseAudience(
            case_id = case, 
            source_message = case_message,
            )
            case_audiance.save()

        return validated_data

Ошибки следующие:

enter image description here

Back to Top