Лучший способ массового создания записей в django rest framework
Я новичок в Django и в настоящее время создаю свои записи, но мне нужен более эффективный способ, который может уменьшить время и нагрузку на сервер. Пожалуйста, сообщите мне лучший подход к созданию массовых записей с отношениями ForeignKeys.
models.py
class Task(models.Model):
name = models.CharField(max_length=255, default='')
description = models.CharField(max_length=255, null=True, blank=True)
project = models.ForeignKey(Project, on_delete=models.CASCADE, null=True)
account = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
class Meta:
db_table = 'tasks'
views.py
@api_view(['POST'])
def create_task(request): # added request JSON below
try:
response = []
for task in request.data:
data = {}
data['name'] = task['name']
data['description'] = task['description']
data['project'] = task['project_id']
data['account'] = task['user_id']
serializer = TaskSerializer(data=data)
serializer.is_valid()
serializer.save()
response.append(serializer.data)
return Response(response)
except Exception as e:
return Response(str(e))
serializers.py
class TaskSerializer(serializers.ModelSerializer):
project = ProjectSerializer(read_only=True) # added to fetch project detail in get request
user = UserSerializer(read_only=True) # added to fetch user detail in get request
class Meta:
model = Task
fields = ['id', 'name', 'description', 'project', 'user']
request from client side
[
{
"name": "foo",
"description": "lorem ipsum",
"project_id": 1,
"user_id": 1
},
{
"name": "bar",
"description": "lorem ipsum",
"project_id": 1,
"user_id": 2
},
{
"name": "baz",
"description": "lorem ipsum",
"project_id": 1,
"user_id": 3
}
]