#q条件
from django.db.models import Q
q = Q(name__startswith="p") | Q(name__startswith="l") #or条件
v =models.Book.objects.filter(q).values("name")
print(v)
#匹配
models.Book.objects.filter(name__startswith="p") #匹配name字段中以p开头的有哪些
#聚合
from django.db.models import Avg,Max,Min,Sum,Count #orm聚合 导入聚合模块
示例
#model.py
class Book(models.Model):
name = models.CharField(max_length=128,unique=True)
price = models.PositiveSmallIntegerField()
authors = models.ManyToManyField("Author")
publisher = models.ForeignKey("Publisher")
pub_date = models.DateField()
def __str__(self):
return self.name
class Author(models.Model):
name = models.CharField(max_length=128)
email = models.EmailField(unique=True)
def __str__(self):
return self.name
class Publisher(models.Model):
name = models.CharField(max_length=128,unique=True)
website = models.URLField(unique=True)
def __str__(self):
return self.name
#给多对多表添加数据
#v = models.Book.objects.create(name="linux",price=33,publisher_id=2,pub_date="2017-06-02")
#v.authors.add(1,2)
#v.save()