-
Notifications
You must be signed in to change notification settings - Fork 0
model details
涂珂 edited this page Nov 15, 2013
·
27 revisions
这部分描述了数据库实现细节,主要是给文档菌 @misaki @zhang_sh11 和 @TaccoRaw 看的 Borrowing那块还没写好,逻辑有点混乱 有什么的地方或需要的接口函数写在Issue里吧
目前分组与权限:(参见需求文档)
group_list = ['NormalUser', 'AdvancedUser', 'Blacklist', 'Admin'] # guest
permission_list = ['can_search', 'can_comment', 'can_manage']
其中'can_manage'为权限'can_midify_book','can_change_perm','can_generate_tempuser','can_manage_blacklist', 'can_delete_user'的集合 [TOC]
域
- user, OneToOneField 一对一表关系到django自带的User模型。这个模型包含:
- username 用户名
- password 密码(加密后
- email 邮箱
- groups 分组('NormalUser', 'AdvancedUser', 'Blacklist', 'Admin' 之一, 默认为NormalUser)
- perssions 权限(由分组决定其权限,目前没有为每个用户单独设置权限), 目前只有三种权限('can_search', 'can_comment', 'can_manage')
- name, 真实姓名(昵称)
接口函数
- register(username, password, email, name, group='NormalUser'), 注册, 必须保证传入数据合法 #282
- set_group(group) 更改分组,用于拉黑,提权等
- get_group_name() 得到当前分组名
- get_group() 得到所有分组类的数组(应该用不到)
- has_perm(string) 判断是否有某种权限, 传入string, 返回bool值
域(这么多!!!吐槽一下需求文档。。。。, 具体见需求文档)
- duartion 借书期限,为0, 7, 14
- name_cn 中文名,若为中文书、中译本或影印本则直接为书名,若对于外文原本则赋空值。
- author 作者名:中英文名称皆支持。
- press 中英文名称皆支持。
- pub_year 出版年份:代表公元纪年4位数字。
- revision 版次:一个阿拉伯数字。
- ISBN 根据国际标准,每本书都有一个对应的ISBN码。
- name_origin 写不动了,见需求文档。。。。。。。。。。。。
- translator
- pub_year_origin
- revision_origin
- type 分类:对于图书的类型定义,如文学,数学,计算机等。(发现忘写了,等下加上)
接口函数
- simple_name() 返回简单书名
- search(string) staticmethod, 返回搜索结果的qureyset
域
- status 状态(需传入int,如下)
status_choice = ((0, 'ready'),(1, 'unreturned'),(2, 'over time'),(3, 'arranging'),(4, 'off shelf'))
- book , ForeignKey连接其对应的book类
- reborrow_time 续借次数
域
- title 标题
- content 内容
- date 时间(自动存入创立时的时间)
接口函数
- local_time() 返回本地时间, 一个类
域
- status 状态(需传入int,如下)
status_choice = ((0, 'borrowing'),(1, 'unreturned'),(2, 'over time'),(3, 'arranging'),(4, 'off shelf'))
- date_borrowing 借书时间
- date_return 还书时间
- book_copy 对应的书的副本
- reborrow_time 当前续借次数
接口函数
- date_expired() 返回到期时间