@cdxfish 感谢指点。
我把自定义的validotor写在了model里面。是这个样子:
def IDValidator(value):
#身份证号码验证
Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
Ti = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
sum = 0
value = value.upper()
if len(value) != 18:
raise ValueError('请输入18位身份证号码,您只输入了%s位' % len(value))
for i in range(17):
sum += int(value[i]) * Wi[i]
if Ti[sum%11] != value[17]:
raise ValueError('请输入正确的身份证号码')
class Person(models.Model):
#身份证号码
identification = models.CharField('身份证号码',max_length=18,unique=True,validators=[IDValidator])
其实如果能力够的话,还可以自定义一个身份证字段。不过现在还不会,慢慢学习中!