有一个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模型中自定义方法从身份证号码中获取出生日期...相关推荐

  1. 18位身份证号藏了什么玄机?用js教你校验身份证

    大家好,想必各位程序猿已经有所发现,而相应地,在日常的开发任务需求了很多跟涉及到用户的都几乎需要用到身份证的校验,因此不留君特意整理出一份身份证号的组成原理以及 校验函数(js版) [身份证号码的规则 ...

  2. 通过身份证号提取性别_身份证号提取生日、年龄、性别、籍贯,最简单的方法!...

    上一期,Amy跟大家分享了如何从身份证号中提取出生日期.今天我们继续来讲如何提取年龄.性别.籍贯. 身份证号提取年龄 ✦思路:在E2单元格输入公式"=DATEDIF(D2,TODAY(),& ...

  3. python语言下划线怎么打_初学Python语言者必须理解的下划线

    下划线(_)在Python语言中有特殊作用. 在大多数编程语言中,下划线是命名变量或者函数名称时的连字符,但是,在Python语言中,不仅如此.如果你是一名Python程序员,对于诸如 _ in ra ...

  4. 身份证号第18位(效验码)计算方法 用于检测身份证号是否正确

    前言: 由于在某些时候,可能需要用户输入真实的身份证号,但是用户可能会胡乱输入虚假的身份证号,导致信息的不真实性,所以为了防止用户胡乱输入,可以通过一些小方法来检测身份证号是否输入正确,本文将介绍一种 ...

  5. python输入一个英文句子、统计单词个数_C语言编程求一个英文句子中的单词数和最长单词的位置、长度及输出这个单词。c++编程 从键盘输入一个英文...

    C语言编程求一个英文句子中的单词数和最长单词的位置.长度及输出这个单词. c++编程 从键盘输入一个英文 www.zhiqu.org     时间: 2020-11-23 我刚做了一关于英文句子里面每 ...

  6. python增删改查的框架_简单的Django框架增删改查操作

    Django之orm对MysqL数据库的增删改查操作简介: 利用Django中orm来查找数据库中的数据,对数据库进行增.删.改.查: 增:新增数据 # 操作数据库user表新增记录 # 方式1: u ...

  7. python得安什么安装包_初学 Python 需要安装哪些软件?

    初学Python,其实是没必要用那么复杂又强大的工具的. 教你一键搭建最好用的交互式编程工具 pip install jupyter 然后怎么运行呢 jupyter notebook ... 对,没有 ...

  8. python爬虫公众号_python爬虫_微信公众号推送信息爬取的实例

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

  9. python微信公众号翻译功能_自学Python笔记:给微信公众号搭建“成绩查询”功能...

    原标题:自学Python笔记:给微信公众号搭建"成绩查询"功能 期末考试 临近年末,全国各地都在上演一场大戏<期末考试>,考完试无论什么样的结果总想尽快看到自己一个学期 ...

最新文章

  1. 基于C++的PyTorch模型部署
  2. word在线解密_实用技能 | 5款免费在线转换PDF的网站
  3. WebRTC音频预处理单元APM的整体编译及使用
  4. oracle触发器超过上限,ORACLE系统触发器的疑问,限制IP登录数
  5. win10 uwp unix timestamp 时间戳 转 DateTime
  6. python爬虫登录网站_python爬虫19 | 遇到需要的登录的网站怎么办?用这3招轻松搞定!...
  7. Linux性能分析之网络篇
  8. Bootstrap3 带列表组的面板
  9. DeFi协议ValueDeFi疑似再次遭到攻击
  10. Java中try-catch-finally-return的执行顺序
  11. 可以自我学习的AI五子棋
  12. 用Python实现开心消消乐小游戏
  13. 基于STM32+铂电阻设计的测温仪
  14. java学习总结(16.07.16)Random类和BigDecimal类
  15. 【Datawhale组队学习Pytorch】Task 完结篇
  16. idea快捷键 常用
  17. Annoy算法简单介绍
  18. 创建多线程有几种方法?如何创建线程?
  19. Matrix Profile介绍
  20. TCP高并发数据转接服务器(Ntrip Caster)

热门文章

  1. 贾跃亭回应传闻:乐视的成功不是靠政府关系
  2. web前端零基础系统学习路线,每个阶段都需要学什么?
  3. pk+uk+fk+index
  4. 2023年谷歌外链购买最全攻略
  5. 用html5实现一个播放器,6 个基于 HTML5 实现的多媒体播放器
  6. 人工智能的概述和入门基础
  7. Object Detection经典代码与文章
  8. 正能量:前思科中国区总裁林正刚先生以自己35年职业经历和心得
  9. Linux ss命令使用
  10. 国企央企OFFER收割全攻略 | 银行篇之差额体检答疑