Django中带有破折号的整数的模型字段

时间:2015-09-21 13:50:49

标签: django django-models

我需要一个特殊识别器的字段,更具体 - CAS号,因此字段应该只传递整数和短划线。是否有更好的方法来保持这样的"破折号整数"比使用CharField?感谢名单。

2 个答案:

答案 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字段,将格式从一个翻译成另一个。