【发布时间】:2014-11-15 23:35:28
【问题描述】:
我希望默认的 modB localField 值是对应外键的 modA WantedField 值。这将给出:
class modA(models.Model):
wantedField = models.CharField(max_length=9)
def asDefault():
return wantedField
class modB(models.Model):
moda = models.ForeignKey(modA)
localField = models.CharField(max_length=9,default=moda.asDefault)
但是 moda 是一个 ForeignKey 对象,因此没有属性“asDefault”。 我想做的事可能吗?
跟随 Kevin Cherepski 更新
这就是我现在的位置:
class modA(models.Model):
wantedField = models.CharField(max_length=9)
[ ... other fields ...]
def asDefault():
return wantedField
class modB(models.Model):
moda = models.ForeignKey(modA)
[ ... other fields ...]
localField = models.CharField(max_length=9,default=moda.asDefault)
def save(self, *args, **kwargs):
if self.pk is None:
if self.moda and not self.localField:
self.localField = self.moda.wantedField
super(modB, self).save(*args, **kwargs)
此外,该方法是否与任何其他字段类型相同? 无论如何,暂时返回:
AttributeError: 'ForeignKey' object has no attribute 'asDefault'
【问题讨论】:
标签: django django-models