- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我试图在保存 Django 模型时将许多字段大写。看着this question , 其中有 this回答:
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
变量。我想循环浏览变量列表以更改它们。我知道有些函数会在不使用 =
的情况下更改值。他们如何做到这一点?我能做到吗?
或者是否有一些更简单的方法来完成我正在做的事情?我走错路了?
解决方案:从第一个答案开始,我做了这个功能:
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()
最佳答案
您可以使用 setattr(self, my_field_name, value) 来实现这一点。
for field in ['first_name', 'last_name']:
value = getattr(self, field)
setattr(self, field, value.title())
您将无法就地修改值,因为字符串在 Python 中是不可变的。
关于python - Django/Python 更新字段值(在模型保存期间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8864716/
根据 Android docs ,activity生命周期如下: onCreate() onStart() onResume() onPause() onStop() onDestroy() 问题是,
我有一门类(class)有很多专栏,但这个问题只需要其中三个: ---------------------------------------- | start_date | start_time
给定在同一个 Tomcat 6 上运行的两个 Web 应用程序。如果您从一个应用程序到另一个应用程序进行 http 调用,Tomcat 是否会“短路”此调用,或者它会在调用之前一直在 interweb
我是一名优秀的程序员,十分优秀!