django ForeignKey的使用
ForeignKey,ManyToManyField与OneToOneField分别在Model中定义多对一,多对多,一对一关系。
ForeignKey
加入数据库中要建立两张表,userlist和UserTpye。
Userlist表的字段有
1
|
[ 'username' , 'password' , 'Gender' , 'Age' , 'memo' , 'TypeID' ]
|
UserType表的字段有
1
|
['name]
|
这里的name值只有三个,管理员,超级管理员,普通用户。
现在希望Userlist和UserType两张表关联起来,即Userlist中有一个TypeID的字段,其值为UserType表的限定的三个值。也就是说Userlist中TypeID只能为管理员、超级管理员或者普通用户
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#coding:utf8
from django.db import models
class Userlist(models.Model):
username = models.CharField(max_length = 50 )
password = models.CharField(max_length = 50 )
male = {
( 'man' , u '男' ),
( 'woman' , u '女' ),
}
Gender = models.CharField(max_length = 50 ,blank = True ,
choices = male)
Age = models.IntegerField(default = '20' )
memo = models.TextField(default = 'xxx' )
#CreateDate = models.DateTimeField(default='2012-1-2 12:00')
TypeID = models.ForeignKey( 'UserType' )
class UserType(models.Model):
name = models.CharField(max_length = 50 )
def __unicode__( self ):
return self .name
|
这里UserType 返回的是name信息,是为了在后台管理界面中,在编辑Userlist表时,UserType字段显示UserType对象的name属性,即“管理员,超级管理员,普通用户”
admin.py代码:
1
2
3
4
5
6
7
8
9
10
11
|
from django.contrib import admin
from learn.models import *
# Register your models here.
class UserlistAdmin(admin.ModelAdmin):
list_display = [ 'username' , 'password' , 'Gender' , 'Age' , 'memo' , 'TypeID' ]
admin.site.register(Userlist,UserlistAdmin)
class UserTypeAdmin(admin.ModelAdmin):
list_display = [ 'name' , 'id' ]
admin.site.register(UserType,UserTypeAdmin)
|
这里UserType表显示了id字段,默认每张表都有id字段,并且是自增的。
django ForeignKey的使用相关推荐
- django ForeignKey 外键和表关系
表与表之间的关联,我们可以用ForeignKey 建立关联. ForeignKey( to, on_delete, **options ) 参数一:引用的是哪一个模型(表): 参数二:当使用的外键 ...
- django ForeignKey参数
1.ForeignKey源码参数: def __init__(self, to, on_delete, related_name=None, related_query_name=None,limit ...
- django ForeignKey on_delete属性相关参数的使用
on_delete = models.CASCADE #删除关联数据,与之关联也被删除 on_delete = models.DO_NOTHING #删除关联数据,什么也不做 on_d ...
- django orm级联_第 03 篇:创建 Django 博客的数据库模型
HelloGitHub-Team 成员--追梦人物 设计博客的数据库表结构 博客最主要的功能就是展示我们写的文章,它需要从某个地方获取博客文章数据才能把文章展示出来,通常来说这个地方就是数据库.我们把 ...
- Python Web开发——Django框架学习
文章目录 Web开发简介 Web应用技术 Web前端开发 Web后端开发 使用 Django 开发后端服务 项目目标 管理员操作 登录界面 客户管理界面 添加客户界面 药品管理界面 添加药品界面 订单 ...
- Django学习笔记(5)---ForeignKey
2019独角兽企业重金招聘Python工程师标准>>> ForeignKey在Django中是Many-To-One类型,即有多个对象绑定到一个对象的意味 先来看例子 from dj ...
- Django:数据库表的建立与增删查改(ForeignKey和ManytoMany)
数据库表的创建: 1.Django工程项目建立,基础环境调试. 2.创建表 from django.db import models class Publisher(models.Model): ...
- django中ForeignKey指向自身的方法
2019独角兽企业重金招聘Python工程师标准>>> 我们用ForeignKey指向自身表,得到一个递归的关系. 实现方法: [python] view plaincopy fat ...
- Django文档——Model中的ForeignKey,ManyToManyField与OneToOneField
关联关系字段 (Relationship fields) ForeignKey,ManyToManyField与OneToOneField分别在Model中定义多对一,多对多,一对一关系. 例如,一本 ...
最新文章
- MFC中快速应用OpenCV(转)
- webpack 单独打包指定JS文件
- 【数字信号处理】相关函数 ( 自相关函数示例 )
- 拒绝“魏则西悲剧”, 产品经理支招,根解百度医疗“莆田系”漏洞
- 第1次作业:谈谈我的看法与感想
- Ruby的module(模块)
- LNMP1.3 一键配置环境,简单方便
- java完全解耦_java-完全解耦
- php stmp 授权码问题,PHPmailer 使用网易126发送邮件的问题
- 光线跟踪的几种常见求交运算
- 速修复!这个严重的Zlib内存损坏漏洞已存在17年!
- 最小二乘的概率解释 广义线性模型解释
- Java CookBook(一)
- Proteus仿真:行列式键盘
- java 工作流框架_java工作流是什么?哪些工作流框架比较好?
- 为什么中国的数字是四位一进,而西方的是三位一进?
- fastdb中的位图应用
- java 保龄球游戏开发_保龄球游戏 编程
- 用HTML+CSS实现一个计科院网站首页静态页面
- STM32中的PWM的频率和占空比的设置
热门文章
- spark sql的简单操作
- 前端学PHP之面向对象系列第四篇——关键字
- Myeclipse启动报错: Invalid 'log4jConfigLocation' parameter
- Spring中的注解@Service @Component @Controller @Repository区别
- vim 忽略大小写查找
- 9.逆向-函数调用约定
- Windows PE 第十三章 PE补丁技术
- Windows核心编程 第十七章 -内存映射文件(下)
- hdu4280 最大流DINIC
- 【Groovy】Groovy 方法调用 ( 使用 对象名.成员名 访问 Groovy 类的成员 | 使用 对象名.‘成员名‘ 访问类的成员 | 使用 对象名[‘成员名‘] 访问类成员 )