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