Создание регистра в другой таблице с id как FK первой таблицы автоматически после создания регистра в первой таблице Django

Models.py

class Email(models.Model):
    id = models.CharField(max_length=200, primary_key=True)
    subject = models.CharField(max_length=200)
    message = models.CharField(max_length=2000)
    time = models.CharField(max_length=50)
    read = models.BooleanField()
    starred = models.BooleanField()
    hasAttachments = models.BooleanField()

class Attachments(models.Model):
    type = models.CharField(max_length=200)
    filename = models.CharField(max_length=200)
    preview = models.CharField(max_length=200)
    url = models.CharField(max_length=200)
    size = models.CharField(max_length=200)
    referring_email = models.ForeignKey(Email, related_name='email',on_delete=models.CASCADE, null=True, blank=True)

Serializers.py

class AttachmentSerializer(serializers.ModelSerializer):
    class Meta:
        model = Attachments
        fields = '__all__'#·('type','filename','preview','url','size')


class EmailSerializer(WritableNestedModelSerializer):
    #to = ToSerializer(many=True)
    #froms = FromsSerializer()
    attachments = AttachmentSerializer(many=True, required=False)

    class Meta:
        model = Email
        fields = '__all__' 
    
    def create(self, validated_data):
        #Popeo del JSON los campos Foreign Keys
        hayAttachments = False
        if(validated_data.get('attachments') != None):
            attachments_data = validated_data.pop('attachments')
            hayAttachments = True
        #Creo el objeto email a partir del JSON tocado
        email = Email.objects.create(**validated_data)  
        if(hayAttachments):
            for attachment_data in attachments_data:
                attachment = Attachments.objects.create(**attachment_data)
                attachment.referring_email = email
        return email

Когда я создаю письмо, я хочу автоматически создать вложение и поместить текущий email id как внешний ключ в таблицу вложений. Я пытался это сделать, но создается только вложение и устанавливается FK=NULL, буду благодарен за любую помощь. (Если вам понадобится дополнительная информация, я обновлю ее)

Вот Json, из которого я загружаю данные:

{
        "id": "15459251a6d6b397565",
        "subject": "Commits that need to be pushed lorem ipsum dolor sit amet, consectetur adipiscing elit.",
        "message": "hello dear friend",
        "time": "28 Jun",
        "read": true,
        "starred": false,
        "important": true,
        "hasAttachments": true,
        "attachments": [
            {
                "type": "image",
                "filename": "flowers",
                "preview": "assets/images/etc/flowers-thumb.jpg",
                "url": "",
                "size": "1.1Mb"
            },
            {
                "type": "image",
                "filename": "snow",
                "preview": "assets/images/etc/snow-thumb.jpg",
                "url": "",
                "size": "380kb"
            },
            {
                "type": "image",
                "filename": "sunrise",
                "preview": "assets/images/etc/sunrise-thumb.jpg",
                "url": "assets/images/etc/early-sunrise.jpg",
                "size": "17Mb"
            }
        ],
        "labels": []
    }

Вернуться на верх