如何从应用了 contribute_to_class 的 class 访问 Django 模型实例
How to access django model instance from class applied with contribute_to_class
我正在使用 contribute_to_class
向模型添加跟踪器 class。
F.e。
class Tracker(object):
watched_class = None
def contribute_to_class(self, cls, name=None):
self.watched_class = cls
class Post(models.model):
...
tracker = Tracker()
所以我可以通过 Post.tracker
访问跟踪器。但是在某些操作中,访问模型实例会很好,所以我可以使用 post_instance.do_some_stuff()
.
而不是 Post.tracker.do_some_stuff(post_instance)
可能吗?
是的,有可能:
class Tracker(object):
def contribute_to_class(self, cls, name=None):
def do_some_stuff(instance):
print instance
cls.do_some_stuff = do_some_stuff
我正在使用 contribute_to_class
向模型添加跟踪器 class。
F.e。
class Tracker(object):
watched_class = None
def contribute_to_class(self, cls, name=None):
self.watched_class = cls
class Post(models.model):
...
tracker = Tracker()
所以我可以通过 Post.tracker
访问跟踪器。但是在某些操作中,访问模型实例会很好,所以我可以使用 post_instance.do_some_stuff()
.
Post.tracker.do_some_stuff(post_instance)
可能吗?
是的,有可能:
class Tracker(object):
def contribute_to_class(self, cls, name=None):
def do_some_stuff(instance):
print instance
cls.do_some_stuff = do_some_stuff