[英]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.