Как создать объект 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
Ошибки следующие: