Как назначить существующие контакты на задачу с помощью Postman в Django Rest Framework без дублирования электронной почты
В настоящее время я работаю над проектом, используя Django Rest Framework и Postman. Моя цель - назначить существующие контакты на задачу. Однако, когда я делаю POST-запрос через Postman, я получаю ошибку: "контакт с таким email уже существует"
Поле электронной почты в моей модели Contact определено как models.EmailField(unique=True), поскольку мне нужно, чтобы каждое письмо было уникальным для всех контактов.
Когда я пытаюсь назначить существующий контакт на задачу с помощью POST-запроса, я получаю вышеупомянутую ошибку.
Вот соответствующая часть моего кода:
{
"id": null,
"title": "Postman",
"description": "Postman",
"dueTo": "2024-06-12T12:04:28Z",
"created": "2024-06-12T12:04:31Z",
"updated": "2024-06-12T12:04:34Z",
"priority": "LOW",
"category": "TECHNICAL_TASK",
"status": "TO_DO",
"subtasks": [
{
"id": null,
"description": "Postman",
"is_done": false
}
],
"contacts": [
{
"id": 1,
"email": "max@mueller.com",
"name": "Max Mueller",
"phone_number": "123456789",
"avatar_color": "#abcdef"
}
]
}
models.py
class Contact(models.Model):
id = models.AutoField(primary_key=True)
email = models.EmailField(unique=True)
name = models.CharField(max_length=50)
phone_number = models.CharField(max_length=30)
avatar_color = models.CharField(max_length=7)
def __str__(self):
return f"{self.name}"
serialzers.py
class ContactSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Contact
fields = ['id', 'email', 'name', 'phone_number', 'avatar_color']
models.py
class Task(models.Model):
id = models.AutoField(primary_key=True)
title = models.TextField()
description = models.TextField()
dueTo = models.DateTimeField()
created = models.DateTimeField()
updated = models.DateTimeField()
priority = models.TextField(choices=Priority.choices)
category = models.TextField(choices=Category.choices)
status = models.TextField(choices=TaskStatus.choices)
contacts = models.ManyToManyField(Contact, default=None, related_name='tasks')
serializers.py
class TaskSerializer(serializers.HyperlinkedModelSerializer):
contacts = ContactSerializer(many=True)
subtasks = SubtaskSerializer(many=True)
class Meta:
model = Task
fields = ['id', 'title', 'description', 'dueTo', 'created', 'updated', 'priority', 'category', 'status',
'subtasks', 'contacts']
Какова наилучшая практика для обработки такого рода сценариев в Django Rest Framework?