姜戈。如何保存序列化和验证数据?

Django. How to save serialized and validated data?

我有一个 Car 模型,其中包含 namemodelserial number 字段。其中 namemodel 字段的组合必须是唯一的。

我正在使用来自 rest_frameworkserializers.ModelSerializer 和验证器 UniqueTogetherValidator

    validators = [
        UniqueTogetherValidator(
            queryset=models.Car.objects.all(),
            fields=['name', 'model']
        )
    ]

数据库已有条目{'name': 'one', 'model': '13', 'serial number': 99}

我要添加汽车列表:

    data = [{'name': 'one', 'model': '13', 'serial number': 99},   {'name': 'two', 'model': '3', 'serial number ': 98},   {' name ':' three ',' model ':' 1 ',' serial number ': 949}]

为此我使用:

serializer = CarSerializer (data = data)

if serializer.is_valid ():
     serializer.save ()

我明白 is_valid() 会 return false。

for item in data:
    serializer = CarSerializer (data = item)

    if serializer.is_valid ():
        serializer.save ()

或者如果您不想进行大量查询:

    valid_data = []
    for item in data:
        serializer = CarSerializer (data = item)
        if serializer.is_valid():
            valid_data.append(item)

    valid_data_serializer = CarSerializer (data = valid_data)
    if valid_data_serializer.is_valid ():
        valid_data_serializer.save ()