[英]Django CharField limitations
如何为CharField指定黑名单。 但是我也希望黑名单在Django管理面板中也能有效...否则,我只会在视图中对其进行验证。
黑名单是指无法使用的值。 我还为该值设置了唯一,但我也想禁用一些字符串。
谢谢,马克斯
在调用父类的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)
这样,它就可以在所有应用程序中使用。
由于几年后,您应该编写一个自定义黑名单验证器:
from django.db import models
from django.core.exceptions import ValidationError
def validate_blacklist(value):
if value in ['a', 'b', 'c']:
raise ValidationError(
"'a', 'b' and 'c' are prohibited!",
params={'value': value},
)
class MyModel(models.Model):
even_field = models.CharField(max_length=200, validators=[validate_even])
有关完整的文档,请参见: Django Validators 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.