模型和字段
自定义模型管理器
自己创建新的管理器:
class DepartmentManager(): # 自定义个新增部门的方法 def creat_dept(self, name, create_date): dept = Department() dept.name = name dept.create_date = create_date dept.save() # 自定义一个根据id查询部门的方法 def getDeptById(self, name): return Department.objects.all().filter(name__contains=name)
部门类:
class Department(models.Model): name = models.CharField(max_length=20) create_date = models.DateField(auto_now_add=True) # 配置自定义的模型管理器(在外部可以用过该属性operate_Dept进一步来调用creat_dept()和getDeptById()) operate_Dept = DepartmentManager()
使用:
#原生态方法一# dept = Department() # dept.name = '财务部' # dept.create_date = date(2018,9,26) # dept.save() #原生态方法二 # dept = Department(name='开发部', create_date=date(2018,9,25)) # dept.save() #调用默认管理器objects里面的create方法 # Department.objects.create(name='测试部', create_date=date(2018,9,25)) # 调用自定义管理器的creat_dept方法 # Department.operate_Dept.creat_dept(name='运营部', create_date=date(2018,9,25)) #调用自定义管理器的getDeptById方法 # depts = Department.operate_Dept.getDeptById('运') # print(depts)
Choices的使用
'''枚举 choices,数据库里面存放0和1,但是到前端的时候显示成对应的男和女。0_男, 1_女 取值使用get_Foo_display()取男或女,Foo表示字段名称。比如下面获取sex即为get_sex_display() ''' class Person(models.Model): sex_choice = ( ('0','男'), ('1','女') ) name = models.CharField(max_length=20) sex = models.CharField(max_length=1, choices=sex_choice)
领取专属 10元无门槛券
私享最新 技术干货