django - How to always filter on a field on objects requests -


i have 2 models :

class album(models.model): #attributes title = models.charfield(max_length=200) displayed = models.booleanfield() created_on = models.datetimefield(auto_now_add=true)  class photos(models.model): #attributes title = models.charfield(max_length=500) link = models.charfield(max_length=500) album = models.foreignkey(album, unique=false, verbose_name=_('album'))  def upload_path(self, filename):     return 'upload/photos/%s/%s' % (self.id, filename)  def upload_path_thumbnail(self, filename):     return 'upload/photos/%s/%s' % (self.id, "thumnail_" +filename)  thumbnail = models.imagefield(upload_to=upload_path_thumbnail)                              photo = models.imagefield(upload_to=upload_path) created_on = models.datetimefield(auto_now_add=true) displayed = models.booleanfield()  

and want force, when select photos, filter on displayed=1.

thank

use custom manager:

class displayedphotomanager(models.manager):     def get_queryset(self):         return super(displayedphotomanager, self).get_queryset().filter(displayed=1)  class photos(models.model):     objects =  displayedphotomanager()        ... 

this override standard "objects" manager (which can dangerous).

a nicer pattern often:

class displayedphotomanager(models.manager):     def get_queryset(self):         return super(displayedphotomanager, self).get_queryset().filter(displayed=1)  class photos(models.model):     objects = models.manager()     displayed = displayedphotomanager()        ... 

and use 'displayed' instead of 'objects':

photo.displayed.all() 

Comments

Popular posts from this blog

objective c - Change font of selected text in UITextView -

php - Accessing POST data in Facebook cavas app -

c# - Getting control value when switching a view as part of a multiview -