我需要一个特殊识别器的字段,更具体 - CAS号,因此字段应该只传递整数和短划线。是否有更好的方法来保持这样的"破折号整数"比使用CharField?感谢名单。
答案 0 :(得分:4)
可能的解决方案之一是使用RegexValidator
:
cas = models.CharField(max_length=11, validators=[RegexValidator(r'^\d\d-\d\d-\d\d-\d\d$')])
答案 1 :(得分:0)
您可以创建自己的django字段,将CAS编号从一种格式转换为另一种格式。 CAS最多只有10位数,其中最后一位是校验和,因此您可以在保存到数据库时跳过它并在检索时计算它。
因此,即使有10位数,它也适合整数字段。这里唯一要做的就是写django字段,将格式从一个翻译成另一个。