4
我试图在我的django模型中保存大量字段。纵观this question,其中有this答案:Django/Python更新字段值(在模型保存期间)
class Blog(models.Model):
name = models.CharField(max_length=100)
def save(self):
self.name = self.name.title()
super(Blog, self).save()
这工作得很好,然而,在每个省,这需要一些额外的打字,如果我想这个多次重复。所以我想在保存步骤中创建一个将字段作为输入的函数,并将它们重新保存为大写字母。所以我写了这个测试吧:
def save(self):
for field in [self.first_name, self.last_name]:
field = field.title()
super(Artist,self).save()
但是,如果我以前想过这个问题,我就已经意识到,这仅仅覆盖field
变量。我想循环访问一个变量列表来改变它们。我知道一些功能会改变这个值,而不使用=
。他们如何做到这一点?我可以做到吗?
还是有一些简单的方法来做我在做什么?我走错了路?
SOLUTION: 从第一个答案,我做了以下功能:
def cap(self, *args):
for field in args:
value = getattr(self, field)
setattr(self, field, value.title())
,并在我的模型:
def save(self):
cap(self,'first_name', 'last_name')
super(Artist,self).save()
非常感谢,这正是我一直在寻找的! – 2012-01-14 19:35:24
很高兴为您服务! – 2012-01-14 19:37:34