models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值
models.Tb1.objects.filter(id__in=[11, 22, 33]) # 获取id等于11、22、33的数据
models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in
models.Tb1.objects.filter(name__contains="ven") # 获取name字段包含"ven"的
models.Tb1.objects.filter(name__icontains="ven") # icontains大小写不敏感
models.Tb1.objects.filter(id__range=[1, 3]) # id范围是1到3的,等价于SQL的bettwen and
类似的还有:startswith,istartswith, endswith, iendswith
date字段还可以:
models.Class.objects.filter(first_day__year=2017)
语法:
对象.关联字段.字段
book_obj = Book.objects.first() # 第一本书对象
print(book_obj.publisher) # 得到这本书关联的出版社对象
print(book_obj.publisher_id) # 得到出版社对象的id
print(book_obj.publisher.name) # 得到出版社对象的名称
语法:
关联字段__字段
#利用双下划线 跨表查询 双下划线就表示 跨一张表
print(Book.objects.values_list("publisher__name")) #所有的出版社的名称
语法:
关联字段__字段
publisher_obj = Publisher.objects.first() # 找到第一个出版社对象
books = publisher_obj.book_set.all() # 找到第一个出版社出版的所有书
# books = publisher_obj.books.all() # 找到第一个出版社出版的所有书,这里的books是Book表中publisher对象的一个别名(加上,related_name="books")
print(books.values_list("name")) # 找到第一个出版社出版的所有书的书名
# 双下划线 跨表查询
print(Publisher.objects.values_list("book__name"))
原文:https://www.cnblogs.com/liujie12/p/12612595.html