Django中自定義查詢物件的具體使用
阿新 • • 發佈:2020-01-09
自定義查詢物件 - 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())
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。