ORM的一对多,多对多
查询
_clas='24期'
obj_li=models.Class.objects.filter(name=_clas).first()
print(obj_li.name,obj_li.sch.name)
for i in obj_li.user.all():
print(i.name,i.username)
24期 aming_linux
测试1 test
测试2 abc
创建
obj=models.School.objects.create(name='aming_Go班')
class_obj=models.Class.objects.create(name='Go_1期',sch=obj)
print(class_obj.sch.name)
aming_Go班
修改
obj=models.Class.objects.filter(sch__name='aming_python').update(name='10期python')
Class中的name就会被修改
删除
obj=models.Class.objects.filter(sch__name='aming_python').delete()
## 多对多
查询
class_obj=models.Class.objects.filter(name='26期').first()
for item in class_obj.user.all():
print(item.name,item.username)
王五 wang3
创建
clas_obj=models.Class.objects.filter(name=_clas).first()
user_obj=models.UserInfo.objects.create(name='多对多测试',username='test')
clas_obj.user.add(user_obj.id)
class_user就会多出一条数据
删除
clas_obj=models.Class.objects.filter(name=_clas).first()
# user_obj=models.UserInfo.objects.create(name='多对多测试',username='test')
user_obj = models.UserInfo.objects.filter(name='李四')
clas_obj.user.remove(*user_obj)
反向查询
user_obj=models.UserInfo.objects.filter(name='测试1').first()
for item in user_obj.class_set.all():
print(item.name)
反向增加
user_obj=models.UserInfo.objects.filter(name='测试1').first()
clas_obj=models.Class.objects.filter(name='Go_1期')
user_obj.class_set.add(*clas_obj)