在有多个对象序列化程序的情况下的验证

问题描述 投票:0回答:1

我的数据输入是以'n'个字典的列表的形式

"contact_person":[
               {
                   "contactperson_salutation[0]":"sddd",
                   "contactperson_first_name[0]":"santoorr",
                   "contactperson_last_name[0]":"",
                   "contactperson_email[0]":"gfgh",
                   "contactperson_mobile_number[0]":"",
                   "contactperson_work_phone_number[0]":"jio"
               },
               {
                   "contactperson_salutation[1]":"dfsf",
                   "contactperson_first_name[1]":"lux",
                   "contactperson_last_name[1]":"",
                   "contactperson_email[1]":"",
                   "contactperson_mobile_number[1]":"",
                   "contactperson_work_phone_number[1]":"9048"
               }, .............]

我的模特是这样的:

class ContactPerson(models.Model):

   client = models.ForeignKey(Client, on_delete=models.CASCADE)
   contactperson_salutation = models.CharField(max_length=4, choices=SALUTATIONS)
   contactperson_first_name = models.CharField(max_length=128)
   contactperson_last_name = models.CharField(max_length=128, blank=True)
   contactperson_email = models.EmailField(blank=True, null=True)
   contactperson_mobile_number = models.CharField(max_length=20, blank=True)
   contactperson_work_phone_number = models.CharField(max_length=20, blank=True)

当输入列表中的每个字典的字段名称都更改时,如何编写序列化程序。

如果发生错误,则错误响应应采用以下格式:

            [
                {
                    "contactperson_email[0]":"Invalid Email",
                    "contactperson_mobile_number[0]":"Invalid mobile phone",
                    "contactperson_work_phone_number[0]":"Invalid workphone number"
                },
                {
                    "contactperson_mobile_number[1]":"Invalid mobile phone",
                    "contactperson_work_phone_number[1]":"Invalid workphone number"
                }
             ]

django django-rest-framework serializer formset django-rest-viewsets
1个回答
0
投票
您可能会通过分析类似"contactperson_salutation[0]"的字符串来构建包含所有出现次数的list contactperson_salutation,从而受益。

其他各字段相同。

© www.soinside.com 2019 - 2024. All rights reserved.