200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python输入身份证号得到出生日期_初学django1:django模型中自定义方法从身份证号码中

python输入身份证号得到出生日期_初学django1:django模型中自定义方法从身份证号码中

时间:2024-04-06 19:57:37

相关推荐

python输入身份证号得到出生日期_初学django1:django模型中自定义方法从身份证号码中

有一个Person的Model,里面用到了身份证、出生日期字段。要求如下:

在存入的时候对身份证号码进行校验。

自动从身份证号码中获取出生日期。

因为初学,不知道如何插入自定义校验,就在Model.py中插入了。

# coding=UTF-8

# models.py

from django.db import models

from django.core.exceptions import ValidationError

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

#身份证第十八位可能是X,输入时将小写x转换为大写X

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])

def birthday(self):

return int(self.identification[6:14])

age = property(birthday)

以上,就完成了校验及出生日期自动获取。

python输入身份证号得到出生日期_初学django1:django模型中自定义方法从身份证号码中获取出生日期...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。