【发布时间】:2015-12-11 08:21:32
【问题描述】:
我在理解self 的行为方面有一个非常基本的问题。
具体来说,我不明白为什么以下两个sn-ps代码都不起作用,第一个导致解释器抱怨
self缺少参数,
第二个
self无法被引用。
class Model(models.Model)
name = models.CharField(max_length=200)
auto_gen_field = models.CharField(max_length=200, default=gen_field())
def gen_field(self):
return self.name + 'something'
class Model(models.Model)
name = models.CharField(max_length=200)
auto_gen_field = models.CharField(max_length=200, default=gen_field(self))
def gen_field(self):
return self.name + 'something'
以下代码也使用了self,可以正常工作:
class Model(models.Model)
name = models.CHarField(max_length=200)
auto_gen_field = models.CharField(max_length=200, blank=True)
def gen_field(self):
return self.name + 'something'
def save(self):
self.auto_gen_field = self.gen_field()
super(Model, self).save(*args, **kwargs)
为什么self 引用存在于一处而不存在于另一处?
如何修复前两个 sn-ps?
【问题讨论】:
标签: python django class model self