1

以下是来自https://github.com/jeffbowen/django-logicaldelete/blob/master/logicaldelete/models.py的代码

我试图了解active.boolean = True代码中的内容。

class Model(models.Model):
    """
    This base model provides date fields and functionality to enable logical
    delete functionality in derived models.
    """

    date_created  = models.DateTimeField(default=timezone.now)
    date_modified = models.DateTimeField(default=timezone.now)
    date_removed  = models.DateTimeField(null=True, blank=True)

    objects = managers.LogicalDeletedManager()

    def active(self):
        return self.date_removed == None
    active.boolean = True  # <------------------- HERE

    def delete(self):
        self.date_removed = timezone.now
        self.save()

    class Meta:
        abstract = True
4

1 回答 1

3

在 Python 中,函数和方法和其他任何东西一样都是对象。这段代码只是booleanactive函数添加了一个属性,可以在代码的其他地方使用。它本身没有任何意义。

在这种情况下,管理员列表显示代码使用它来在列表中显示一个漂亮的图标,而不是 True/False。

于 2013-11-06T10:41:13.837 回答