self 可以用来访问对象属性吗?
Can self be used to access object attributes?
我正在尝试验证一些图像字段,但我不知道是否可以使用表示字段名称的变量和 for 循环来迭代模型的属性?
class Guitar(models.Model):
images0 = models.ImageField(upload_to='images', blank=True)
def clean(self):
images = ['images0', ...]
for idx, val in enumerate(images):
if self[val].size > 2000000:
所以可以这样使用self
?
self[val].size == self.images0.size
不可能那样做。使用 https://docs.python.org/2/library/functions.html#getattr
阅读这些函数的 python 文档后,您可能会考虑这样编写代码:
def clean(self):
images = ['images0', ...]
for idx, val in enumerate(images):
if hasattr(self, val):
image = getattr(self, val)
if image.size > 2000000:
...
我正在尝试验证一些图像字段,但我不知道是否可以使用表示字段名称的变量和 for 循环来迭代模型的属性?
class Guitar(models.Model):
images0 = models.ImageField(upload_to='images', blank=True)
def clean(self):
images = ['images0', ...]
for idx, val in enumerate(images):
if self[val].size > 2000000:
所以可以这样使用self
?
self[val].size == self.images0.size
不可能那样做。使用 https://docs.python.org/2/library/functions.html#getattr
阅读这些函数的 python 文档后,您可能会考虑这样编写代码:
def clean(self):
images = ['images0', ...]
for idx, val in enumerate(images):
if hasattr(self, val):
image = getattr(self, val)
if image.size > 2000000:
...