2009-07-29 66 views
1

如何爲CharField指定黑名單。不過,我希望黑名單在Django管理面板中生效,否則我只會在視圖中驗證它。Django CharField限制

黑名單我的意思是無法使用的值。我也設置了獨特的價值,但我想禁用一些字符串以及。

感謝, 最大

回答

1

在調用父類的save()方法之前,我會覆蓋模型的save()方法並將其插入黑名單中。

類似的東西(簡體):

class BlackListModel(models.Model): 
    blacklist = ['a', 'b', 'c'] 

    # your model fields definitions... 

    def save(self, *args, **kwargs): 
     if self.blacklist_field in self.blacklist: 
      raise Exception("Attempting to save a blacklisted value!") 
     return super(BlackListModel, self).save(*args, **kwargs) 

它在所有的應用程序的方式。

0

這是不可能的開箱。您必須編寫custom form field或以其他方式添加custom admin handling才能執行管理員級驗證。要在數據庫級別執行此操作,我懷疑您需要設置某種觸發器和存儲過程,但這不是我的區域,所以我會將其留給其他人。