Django查询,修改对象 如何从数据库的queryset对象中提取值?

方法

1.查

用filter查不到他不会报错,但是用get查不到他会报错
下边这个代码,就是根据labelfilerelative这个参数与数据库的datalabel参数匹配查找对应的值

item = TCMdatabase.objects.filter(datalabel='/media/1900001/label/cb4333f9-858e-11eb-813b-e86a6468dcd8.txt')
<QuerySet [<TCMdatabase: 1>]>  
--------------------------------------------------------------------------------------


item = TCMdatabase.objects.filter(datalabel='/media/1900001/label/cb4333f9-858e-11eb-813b-e86a6468dcd8.txt').values()
<QuerySet [{'datasetid': 1, 'datalabel': '/media/1900001/label/cb4333f9-858e-11eb-813b-e86a6468dcd8.txt', 'datatrain': '/media/1900001/train/cb435af4-858e-11eb-a959-e86a6468dcd8.txt', 'dataTeacher_id': 1}]>
--------------------------------------------------------------------------------------


item = TCMdatabase.objects.filter(datalabel='/media/1900001/label/cb4333f9-858e-11eb-813b-e86a6468dcd8.txt').values()[0]
{'datasetid': 1, 'datalabel': '/media/1900001/label/cb4333f9-858e-11eb-813b-e86a6468dcd8.txt', 'datatrain': '/media/1900001/train/cb435af4-858e-11eb-a959-e86a6468dcd8.txt', 'dataTeacher_id': 1}
--------------------------------------------------------------------------------------

item = TCMdatabase.objects.filter(datalabel=labelfilerelative).values()[0]
datasetid = item.get('datasetid')
item.get('datasetid')
1

完整代码是

datasetid = TCMdatabase.objects.filter(datatrain=trainfilerelative).values()[0].get('datasetid')

2. 修改

  • 这个是根据teacher_id 查询已经有的数据库相关内容
  • tea_data 就是你查到的那条数据的对象
  • 对这条对象的postTime 字段进行添加数据,修改,记得保存 save()
location = teacher_id 
        tea_data = Teacher.objects.get(id=teacher_id)
        tea_data.postTime = datetime.datetime.now()
        tea_data.save()

具体内容看我的笔记


版权声明:本文为Slience_me原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。