2009-07-29 64 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才能执行管理员级验证。要在数据库级别执行此操作,我怀疑您需要设置某种触发器和存储过程,但这不是我的区域,所以我会将其留给其他人。