1. 程式人生 > 程式設計 >Django中自定義查詢物件的具體使用

Django中自定義查詢物件的具體使用

自定義查詢物件 - objects

①宣告一個類EntryManager,繼承自models.Manager,並新增自定義函式

②使用建立的自定義類EntryManager 覆蓋Models中的objects

# models.py
class AuthorManager(models.Manager): # 新建一個類,繼承自models.Manager
  def name_count(self,keywords): # 新增自定義的查詢函式
   '''統計姓名中含有某些關鍵字的數量'''
    return self.filter(name__contains=keywords).count()
    
  def lt_age(self,age):
    '''查詢年齡小於指定年齡的資訊'''
    return self.filter(age__lt=age)

class Author(models.Model):
  objects = AuthorManager() # 使用建立的自定義類覆蓋objects

  name = models.CharField(max_length=30,verbose_name='姓名')
  age = models.IntegerField(verbose_name='年齡')
  email = models.EmailField(null=True,verbose_name='郵箱')
  picture = models.ImageField(null=True,upload_to='static/upload/usring',verbose_name='使用者頭像')

  publisher = models.ManyToManyField(Publisher,null=True,verbose_name='出版社')

# views.py
def myself(request):
 '''自定義查詢函式'''
 # 統計名字中包含王字的
  num = Author.objects.name_count(keywords='王') 
 
 # 查詢年齡小於36的作者資訊
  authors = Author.objects.lt_age(age=36)
  return render(request,'name_count.html',locals())

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。