我有一个类对象作为属性附加到Django模型。为了回答这个问题,我们假设它看起来像:
class Foo(object):
def bar(self):
print "Does things here"
class Task(models.Model):
name = models.CharField(max_length=30)
user = models.ForeignKey(User, related_name = 'tasks'
foo = Foo()
我是否可以从foo属性访问特定记录的值?举个例子,如果我有这样的东西:
task = Task(name="Get things done", user=JordanReiter)
newest_task = Task.objects.filter(user=JordanReiter).order_by('-pk')[0]
然后我可以在Foo
类上有一些函数spiffy
,这样我就可以运行如下操作:
newest_task.foo.spiffy()
而spiffy
函数将知道在本例中name的值是“Get things done”,等等
基本上,我想知道属性是否可以知道有关调用它们的实例的信息,或者只知道调用它们的类的信息。当然,如果这是可能的,我如何访问实例的值?你知道吗
在理想情况下,foo
属性可以访问Task
类以及newest_task
实例的信息。你知道吗
听起来你可能想要一个descriptor。它们是实现特殊方法的类,这些方法在获取或设置时被调用,并传递给父实例。你知道吗
你可以把
Foo
变成custom manager,这样它就知道了Task
。你知道吗相关问题 更多 >
编程相关推荐