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 では、関数とメソッドは他のオブジェクトと同様にオブジェクトです。このコードは、関数に属性booleanを追加するだけで、コードの他の場所で使用できます。activeそれ自体には何の意味もありません。

この場合、True/False の代わりにリストに素敵なアイコンを表示するために、管理者リスト表示コードによって使用されます。

于 2013-11-06T10:41:13.837 に答える