基础设置
创建项目
django-admin startproject 项目名
创建应用
指的是在项目中创建应用
python manage.py startapp 应用名称
模型层
一对一
创建
class Book(models.Model):
... ...
class Isbn(models.Model):
book = models.OneToOneField(Book)
在任一实体添加即可
一对多
什么是一对多
A表中的一条数据可以与B表中的多条数据关联
B表中的一条数据只能与A表中的一条数据关联
example
出版社跟图书
我们这里指的是实际出版的图书,并不是指书名。每一本书在出版时都有他的isbn编号。比如你去书店买《笑傲江湖》可能会有很多本,我们这里指的是某一本。
一本书只会有一个出版社,但是一个出版社可能会出很多书。这里的出版社跟书就是一对多。
创建
class Publisher(models.Model):
... ...
class Book(models.Model):
... ...
publisher = models.ForeignKey(Publisher)
在多的一侧添加外键
操作
正向查询 - 通过Book查询Publisher
book = Book.objects.get(id=1)
publisher = book.publisher
反向查询
通过Publisher查询Book
Django会在 1 的实体中增加 关联对象_set 属性用于查询 多 的数据
publisher=Publisher.objects.get(id=1)
books = publisher.book_set.all()
admin 样式设置
样式变量 | 说明 | 举例 |
---|---|---|
list_display | 可显示数据库字段 | list_display = [‘id’, ‘name’] |
list_filter | 右边栏过滤器 | list_display = [‘id’] |
search_fields | 搜索 | search_fields = [‘id’] |
ording | 排序 | ordering = [‘id’] |
list_per_page | 每页显示的数据条数 | list_per_page = 5 |
readonly_fields | 只读的字段 | readonly_fields = [ ‘name’ ] |
date_hierarchy | 显示时间分层 仅支持时间类型 | date_hierachy = [ ‘time’ ] |
list_display_links | 设置可编辑字段 | list_display_links = [‘name’, ‘time’] |