Django框架学习笔记(11.ORM字段参数及外键简介)

在数据库存下的本质上都是字符串,但是在models.py里面有多种格式:

from django.db import models

# Create your models here.

class UserInfo(models.Model):
    username = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    email = models.CharField(max_length=32)
    text = models.EmailField(max_length=19, null=True)
    text1 = models.URLField(max_length=19, null=True)
    text2 = models.GenericIPAddressField(max_length=19, null=True)

这些本质上都一样,不过在admin里面起到作用。


字段的参数:

1.null:创建数据库的时候是否为空

2.default:默认值

3.primary_key:是否为主键

4.db_column:修改列名

5.db_index:普通索引

6.unique:是否为唯一索引

7.unique_for_date:只对时间索引

8.unique_for_month:只对月份索引

9.unique_for_year:只对年索引

10.auto_now:创建时,自动生成当前时间

11.auto_now_add:更新时,自动更新为当前时间

ctime = models.DateField(auto_now_add=True, null=True)
uptime = models.DateField(auto_now=True, null=True)

12.chioces:做一个选项,把选项放在内存里面,在admin里面产生下拉框

user_type_choices = (
    (1, '超级会员'),
    (2, '普通会员'),
    (3, '普通成员'),
)
user_type_id = models.IntegerField(choices=user_type_choices, default=1)

这里在数据库里面显示的是数字,但是在admin里面就会变成对应的选项,创建好提交到数据库之后,还是数字。


13.blank:在admin中是否可以为空

14.verbose_name:在admin中改成相应的中文名

15.editable:在admin中是否可以被编辑(即是否显示它)

16.help_text:在admin中提示信息的设置

17.validators:自定义错误信息




两个表之间也可以存在关系:

class UserGroup(models.Model):
    uid = models.AutoField(primary_key=True)
    #设置了一个自增主键
class UserInfo(models.Model):
    user_group = models.ForeignKey('UserGroup', to_field='uid', default=1, on_delete=models.CASCADE)
    #表中是user_group_id存取数字,只能是uid的一个

创建的时候用xxx_id之间创建,免去查询数据库过程


userlist = models.xxx.object.all()
for row in userlist:
    row.id
    row.xxx_id
    row.xxx.name


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值