2015-04-18 57 views
0

我想驗證幾個圖像字段,我不知道是否可以使用表示字段名稱的變量和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 

回答

2

你在找什麼是hasattrgetattr

閱讀Python文檔爲這些功能後,你可能會考慮寫這樣的代碼:

def clean(self): 
    images = ['images0', ...] 
    for idx, val in enumerate(images): 
     if hasattr(self, val): 
      image = getattr(self, val) 
      if image.size > 2000000: 
       ...