1、一个Q:
Book.objects.filter(Q(id=3)).first()
2、多个Q:
Book.objects.filter(Q(id=2) | Q(title="java")).first()
3、Q里面的字段可以用下划线:
Book.objects.filter(Q(price__gte=6)|Q(id__gt=1)).first()
4、gt大于等于 ~Q就是非的意思:
Book.objects.filter(Q(price__gte=6) | ~Q(id__gt=1)).first()
5、Q.children.append()和Q.add():
remove_book = Q() temp1 = Q() temp.connector = "AND" # 连接的条件是AND ,默认就是AND temp .children.append(("room_id", 1)) # room_id 代表的是数据库的字段 temp .children.append(("time_id", 2)) # 等同于:room_id=1 & time_id=2 temp2 = Q() temp2 .connector = "AND" # 可以不写的 temp2 .children.append(("room_id", 1)) # 同样数据库里username字段 temp2 .children.append(("time_id", 3)) # 等同于:room_id=1 & time_id=3 remove_book .add(temp1, "OR") remove_book .add(temp2, "OR") # remove_book里面的条件结果就是: (room_id=1 & time_id=2) | (room_id=1 & time_id=3) Book.objects.filter(remove_book ).remove() # 删除符合条件的数据