Django models, custom functions

后端 未结 3 1294
暖寄归人
暖寄归人 2020-12-13 00:22

I am creating simple application with django. Also, I realized that I am doing some kind of operations very often. For example I often need to get all Article objects which

3条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-13 01:27

    What you probably want is a custom manager

    From the django docs:

            # An example of a custom manager called "objects".
    
    class PersonManager(models.Manager):
        def get_fun_people(self):
            return self.filter(fun=True)
    
    class Person(models.Model):
        first_name = models.CharField(max_length=30)
        last_name = models.CharField(max_length=30)
        fun = models.BooleanField()
        objects = PersonManager()
    
        def __unicode__(self):
            return u"%s %s" % (self.first_name, self.last_name)
    

    which then allows you to do something like:

    >>> p1 = Person(first_name='Bugs', last_name='Bunny', fun=True)
    >>> p1.save()
    >>> p2 = Person(first_name='Droopy', last_name='Dog', fun=False)
    >>> p2.save()
    >>> Person.objects.get_fun_people()
    []
    

提交回复
热议问题