django 学习(九)—— 发布会签到系统设计发布会表和嘉宾表

Django模型基础知识:

  • 每个模型是一个Python类,继承django.db.models.Model
  • 该模型的每个属性表示一个数据库字段
  • 所有这一切,都已经给了你一个自动生成的数据库访问的api

打开.../sign/models.py文件,通过模型完成表的创建:

 

 首先,发布会表和嘉宾表中默认都会生成自增id,但在创建模型类时不需要声明该字段

 其次,发布会表中增加status字段用于表示该发布会的状态是否开启,从而控制发布会是否可用。

 再次,嘉宾表中通过event字段(表中字段名为event_id)关联发布会id,一条嘉宾信息一定属于某一场发布会。ForeignKey()用来创建外键。

 最后,在嘉宾表中,除了嘉宾id为主键外,这里通过发布会id+手机号来作为联合主键。

Meta是Django模型类的一个内部类,它用于定义一些Django模型类的行为特性。unique_together用于设置两个字段为联合主键

__str__()方法告诉Python如何将对象以str的方式显示出来。

django模型字段常用类型:

 

 

 

 

模型创建好以后执行数据库迁移

 

 解决方法:定义外键时加上on_delete=models.CASCADE,即:

 重新迁移:

 

 

 

通过Admin后台管理用户/用户组

 

 

 登录后台查看:

 

 点击Event后面的加号,新增一条发布会信息

 

 默认只有发布会名称,这与创建model时设置的__str__()方法有关,默认返回self.name,即发布会名称。如何才能让表显示更多的字段呢?

继续修改.../sign/admin.py文件

Django提供了大量选项让你针对特别的模块自定义管理工具。这些选项都在ModelAdmin类中,创建EventAdmin类ModelAdmin。这里只自定义了一项:list_display,它是一个字段名称的数组,用于定义要在列表中显示哪些字段。当然,这些字段名称必须是模型中的Event()类所定义的

 

 

 修改admin.site.register()方法,添加EventAdmin类。可以理解为:用EventAdmin选项注册Event模块

 

 

 

 

 

 

生成搜索栏和过滤器

重新打开.../sign/admin.py文件

 

 

 

 

 search_fields用于创建字段的搜索器,可以设置搜索关键字匹配多个表字段

 list_filter用于创建字段过滤器

 

posted @ 2022-01-10 11:47  海浪。  阅读(170)  评论(0)    收藏  举报