
负情绪是真的烦人,要是每天都单纯的像个孩子就好啦!
社会有时候真的好复杂,每个人的情绪都会相互影响,努力保持自己吧!
今天的内容是创建一个models,附上代码 (知识点呢)
- unique代表唯一
- 当字段为int时,如果要求可为空,则需要blank=true,和null = true
- choices为选择器
- DecimalField为支持固定精度的十进制数,有decimal_places代表小数位,max_digits代表整数最大位
- 定义Meta ,比如表名,所有非字段的东西都在这里定义!详见丢下方
- 其他详见 https://docs.djangoproject.com/zh-hans/4.0/ref/models/fields/#
FIRST_INTERVIEW_RESULT_TYPE = ((u'建议复试', u'建议复试'), (u'待定', u'待定'), (u'放弃', u'放弃'))INTERVIEW_RESULT_TYPE = ((u'建议录用', u'建议录用'), (u'待定', u'待定'), (u'放弃', u'放弃'))DEGREE_TYPE = ((u'本科', u'本科'), (u'研究所', u'研究所'), (u'博士', u'博士'))HR_SCORE_TYPE = ((u'S', u'S'), (u'A', u'A'), (u'B', u'B'))class Candidate(models.Model):# 基础信息userid = models.IntegerField(unique=True, blank=True, null=True, verbose_name=u'应聘者id')username = models.CharField(max_length=135, verbose_name=u'应聘者昵称')city = models.CharField(max_length=135, verbose_name=u'应聘者城市')phone = models.CharField(max_length=135, verbose_name=u'应聘者手机号')email = models.EmailField(max_length=135, blank=True, verbose_name=u'应聘者邮箱')apply_position = models.CharField(max_length=135, blank=True, verbose_name=u'应聘者职位')born_address = models.CharField(max_length=135,blank=True, verbose_name=u'应聘者生源地')gender = models.CharField(max_length=135, verbose_name=u'性别')candidate_remark = models.CharField(max_length=135, blank=True, verbose_name=u'候选人信息备注')# 学校与学历信息bachelor_school = models.CharField(max_length=135, blank=True, verbose_name=u'本科学校')master_school = models.CharField(max_length=135, blank=True, verbose_name=u'研究所学校')doctor_school = models.CharField(max_length=135, blank=True, verbose_name=u'博士生学校')major = models.CharField(max_length=135, blank=True, verbose_name=u'专业')degree = models.CharField(max_length=135,choices=DEGREE_TYPE, blank=True, verbose_name=u'应聘者昵称')# 综合能力测评成绩,笔记成绩test_score_of_general_ability = models.DecimalField(decimal_places=1, null=True, max_digits=3, blank=True,verbose_name=u'综合能力测评成绩')paper_score = models.DecimalField(decimal_places=1, null=True, max_digits=3, blank=True, verbose_name=u'笔试成绩')# 第一轮面试记录first_score = models.DecimalField(decimal_places=1, null=True, max_digits=2, blank=True, verbose_name=u'初试分')first_learning_ability = models.DecimalField(decimal_places=1, null=True, max_digits=2, blank=True,verbose_name=u'学习能力得分')first_professional_competency = models.DecimalField(decimal_places=1, null=True, max_digits=2, blank=True,verbose_name=u'专业能力得分')first_disadvantage = models.TextField(max_length=1024, blank=True, verbose_name=u'顾虑和不足')first_advantage = models.TextField(max_length=1024, blank=True, verbose_name=u'优势')first_result = models.CharField(max_length=256, choices=FIRST_INTERVIEW_RESULT_TYPE, blank=True,verbose_name=u'初试结果')first_recommend_position = models.CharField(max_length=256, blank=True, verbose_name=u'推荐部门')first_interviewer = models.CharField(max_length=256, blank=True, verbose_name=u'面试官')first_remark = models.CharField(max_length=135, blank=True, verbose_name=u'初试备注')# 第二轮面试记录second_score = models.DecimalField(decimal_places=1, null=True, max_digits=2, blank=True, verbose_name=u'复试分')second_learning_ability = models.DecimalField(decimal_places=1, null=True, max_digits=2, blank=True,verbose_name=u'学习能力得分')second_professional_competency = models.DecimalField(decimal_places=1, null=True, max_digits=2, blank=True,verbose_name=u'专业能力得分')second_pursue_of_excellence = models.DecimalField(decimal_places=1, null=True, max_digits=2, blank=True,verbose_name=u'追求卓越得分')second_communication_ability = models.DecimalField(decimal_places=1, null=True, max_digits=2, blank=True,verbose_name=u'沟通能力得分')second_pressure_score = models.DecimalField(decimal_places=1, null=True, max_digits=2, blank=True,verbose_name=u'抗压能力得分')second_disadvantage = models.TextField(max_length=1024, blank=True, verbose_name=u'顾虑和不足')second_advantage = models.TextField(max_length=1024, blank=True, verbose_name=u'优势')second_result = models.CharField(max_length=256, choices=FIRST_INTERVIEW_RESULT_TYPE, blank=True,verbose_name=u'复试结果')second_recommend_position = models.CharField(max_length=256, blank=True, verbose_name=u'推荐部门')second_interviewer = models.CharField(max_length=256, blank=True, verbose_name=u'面试官')second_remark = models.CharField(max_length=135, blank=True, verbose_name=u'复试备注')# HR终面hr_score = models.CharField(max_length=10, choices=DEGREE_TYPE, blank=True, verbose_name=u'HR复试综合等级')hr_responsibility = models.CharField(max_length=10, choices=HR_SCORE_TYPE, blank=True, verbose_name=u'责任心')hr_communication_ability = models.CharField(max_length=10, choices=HR_SCORE_TYPE, blank=True, verbose_name=u'坦诚沟通')hr_logic_ability = models.CharField(max_length=10, choices=HR_SCORE_TYPE, blank=True, verbose_name=u'逻辑思维')hr_potential = models.CharField(max_length=10, choices=HR_SCORE_TYPE, blank=True, verbose_name=u'发展潜力')hr_stability = models.CharField(max_length=10, choices=HR_SCORE_TYPE, blank=True, verbose_name=u'稳定性')hr_disadvantage = models.TextField(max_length=1024, blank=True, verbose_name=u'顾虑和不足')hr_advantage = models.TextField(max_length=1024, blank=True, verbose_name=u'优势')hr_result = models.CharField(max_length=256, choices=FIRST_INTERVIEW_RESULT_TYPE, blank=True,verbose_name=u'HR复试结果')hr_interviewer = models.CharField(max_length=256, blank=True, verbose_name=u'HR面试官')hr_remark = models.CharField(max_length=135, blank=True, verbose_name=u'HR复试备注')creator = models.CharField(max_length=256, blank=True, verbose_name=u'候选人数据的创建人')created_data = models.DateTimeField(auto_now_add=True, blank=True, verbose_name=u'创建时间')modified_date = models.DateTimeField(auto_now=True, blank=True, verbose_name=u'更新时间')last_editor = models.CharField(max_length=256, blank=True, verbose_name=u'最后编辑者')class Meta:db_table = u'candidate'verbose_name = u'应聘者'verbose_name_plural = u'应聘者'# 当我们把这个对象转换成字符串的时候,就直接调用这个函数的返回值,使用候选人的名字,作为展示对象def __str__(self):return self.username
Meta:
模型的元数据即“所有不是字段的东西”,比如排序选项( ordering ),数据库表名( db_table ),或是阅读友好的单复数名( verbose_name 和 verbose_name_plural )。这些都不是必须的,并且在模型当中添加 Meta类 也完全是可选的。
具体在 https://docs.djangoproject.com/zh-hans/4.0/ref/models/options/ 里面有所有的可选项
from django.db import modelsclass Ox(models.Model):horn_length = models.IntegerField()class Meta:ordering = ["horn_length"]verbose_name_plural = "oxen"
