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属性,即“管理员,超级管理员,普通用户”

wKioL1iz-SbgQTH5AADC7cjPul4948.png

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字段,并且是自增的。

wKioL1iz-fyzOZ6rAACYg2vShlo461.png










本文转自 曾哥最爱 51CTO博客,原文链接:http://blog.51cto.com/zengestudy/1901751,如需转载请自行联系原作者

目录
相关文章
|
1月前
|
监控 安全 应用服务中间件
python中Django入门(四)
python中Django入门(四)
31 0
|
3月前
|
SQL 前端开发 JavaScript
Python 教程之 Django(10)模板
Python 教程之 Django(10)模板
34 0
|
3月前
|
存储 安全 网络协议
Python 教程之 Django(9)对模型中的字段进行验证
Python 教程之 Django(9)对模型中的字段进行验证
30 0
Python 教程之 Django(9)对模型中的字段进行验证
|
17天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【4月更文挑战第9天】本文对比了Python三大Web框架Django、Flask和Pyramid。Django功能全面,适合快速开发,但学习曲线较陡;Flask轻量灵活,易于入门,但默认配置简单,需自行添加功能;Pyramid兼顾灵活性和可扩展性,适合不同规模项目,但社区及资源相对较少。选择框架应考虑项目需求和开发者偏好。
|
2月前
|
前端开发 关系型数据库 MySQL
基于python+django+vue.js开发的社区养老管理系统
基于python+django+vue.js开发的社区养老管理系统
97 1
|
9天前
|
Python
基于Django的Python应用—学习笔记—功能完善
基于Django的Python应用—学习笔记—功能完善
|
24天前
|
前端开发 测试技术 数据库
【python】为什么使用python Django开发网站这么火?
【python】为什么使用python Django开发网站这么火?
|
1月前
|
中间件 数据安全/隐私保护 Python
python中Django入门(三)
python中Django入门(三)
17 0
|
1月前
|
前端开发 JavaScript Shell
python中Django入门(二)
python中Django入门(二)
13 0
|
1月前
|
SQL Shell 数据库
python中Django入门(一)
python中Django入门(一)
28 0