如何使用DJANGO python在POSTGRESQL数据库中保存JSON数组数据?

2024-10-01 05:00:17 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用Python Django API在PostgreSQL数据库表中保存JSON数组数据

我从一个API调用中获取下面的JSON数组数据,我想将这些数据保存在PostgreSQL数据库表中

JSON数组数据:

[
{
    "id": 16,
    "todoItem": "shopping",
    "checked": false,
    "todoitemid": "1",
    "Date": "26/06/2021"
},
{
    "id": 17,
    "todoItem": "grocery",
    "checked": false,
    "todoitemid": "14646",
    "Date": "26/06/2021"
},
{
    "id": 18,
    "todoItem": "dropoff",
    "checked": false,
    "todoitemid": "1467",
    "Date": "26/06/2021"
},
{
    "id": 19,
    "todoItem": "movie",
    "checked": false,
    "todoitemid": "297",
    "Date": "26/06/2021"
}
     ...
     ...
     ...
     ...
 ]

型号:

class Todo(models.Model):
todoItem=models.CharField(max_length=100,blank=False,default='')
checked=models.BooleanField(default=False)
todoitemid=models.CharField(max_length=20 , blank=False,default='')
Date=models.CharField(max_length=20 , blank=False,default='')

序列化程序:

class todoserializer( serializers.ModelSerializer):
    class Meta:
        model= Todo
        fields=('id',
                        'todoItem',
                        'checked',
                        'todoitemid',
                        'Date'
                      )

#Views.py

           @api_view(['POST'])
           def todo_list(request):
           request.method == 'POST':        
             todo_data = JSONParser().parse(request)
             todo_serializer =todoserializer(data=todo_data)
             if todo_serializer.is_valid():
                   todo_serializer.save()
                   return JsonResponse(todo_serializer.data, status=status.HTTP_201_CREATED) 
                 return JsonResponse(todo_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
       

两个问题:

  • 我做错了什么
  • 如何迭代该请求中解析的JSON数组数据

Tags: 数据idjsonfalsedefaultdatadatemodels