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

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

django ForeignKey的使用相关推荐

  1. django ForeignKey 外键和表关系

    表与表之间的关联,我们可以用ForeignKey 建立关联. ForeignKey( to,  on_delete,  **options ) 参数一:引用的是哪一个模型(表): 参数二:当使用的外键 ...

  2. django ForeignKey参数

    1.ForeignKey源码参数: def __init__(self, to, on_delete, related_name=None, related_query_name=None,limit ...

  3. django ForeignKey on_delete属性相关参数的使用

    on_delete = models.CASCADE     #删除关联数据,与之关联也被删除 on_delete = models.DO_NOTHING     #删除关联数据,什么也不做 on_d ...

  4. django orm级联_第 03 篇:创建 Django 博客的数据库模型

    HelloGitHub-Team 成员--追梦人物 设计博客的数据库表结构 博客最主要的功能就是展示我们写的文章,它需要从某个地方获取博客文章数据才能把文章展示出来,通常来说这个地方就是数据库.我们把 ...

  5. Python Web开发——Django框架学习

    文章目录 Web开发简介 Web应用技术 Web前端开发 Web后端开发 使用 Django 开发后端服务 项目目标 管理员操作 登录界面 客户管理界面 添加客户界面 药品管理界面 添加药品界面 订单 ...

  6. Django学习笔记(5)---ForeignKey

    2019独角兽企业重金招聘Python工程师标准>>> ForeignKey在Django中是Many-To-One类型,即有多个对象绑定到一个对象的意味 先来看例子 from dj ...

  7. Django:数据库表的建立与增删查改(ForeignKey和ManytoMany)

    数据库表的创建: 1.Django工程项目建立,基础环境调试. 2.创建表 from django.db import models class Publisher(models.Model):    ...

  8. django中ForeignKey指向自身的方法

    2019独角兽企业重金招聘Python工程师标准>>> 我们用ForeignKey指向自身表,得到一个递归的关系. 实现方法: [python] view plaincopy fat ...

  9. Django文档——Model中的ForeignKey,ManyToManyField与OneToOneField

    关联关系字段 (Relationship fields) ForeignKey,ManyToManyField与OneToOneField分别在Model中定义多对一,多对多,一对一关系. 例如,一本 ...

最新文章

  1. MFC中快速应用OpenCV(转)
  2. webpack 单独打包指定JS文件
  3. 【数字信号处理】相关函数 ( 自相关函数示例 )
  4. 拒绝“魏则西悲剧”, 产品经理支招,根解百度医疗“莆田系”漏洞
  5. 第1次作业:谈谈我的看法与感想
  6. Ruby的module(模块)
  7. LNMP1.3 一键配置环境,简单方便
  8. java完全解耦_java-完全解耦
  9. php stmp 授权码问题,PHPmailer 使用网易126发送邮件的问题
  10. 光线跟踪的几种常见求交运算
  11. 速修复!这个严重的Zlib内存损坏漏洞已存在17年!
  12. 最小二乘的概率解释 广义线性模型解释
  13. Java CookBook(一)
  14. Proteus仿真:行列式键盘
  15. java 工作流框架_java工作流是什么?哪些工作流框架比较好?
  16. 为什么中国的数字是四位一进,而西方的是三位一进?
  17. fastdb中的位图应用
  18. java 保龄球游戏开发_保龄球游戏 编程
  19. 用HTML+CSS实现一个计科院网站首页静态页面
  20. STM32中的PWM的频率和占空比的设置

热门文章

  1. spark sql的简单操作
  2. 前端学PHP之面向对象系列第四篇——关键字
  3. Myeclipse启动报错: Invalid 'log4jConfigLocation' parameter
  4. Spring中的注解@Service @Component @Controller @Repository区别
  5. vim 忽略大小写查找
  6. 9.逆向-函数调用约定
  7. Windows PE 第十三章 PE补丁技术
  8. Windows核心编程 第十七章 -内存映射文件(下)
  9. hdu4280 最大流DINIC
  10. 【Groovy】Groovy 方法调用 ( 使用 对象名.成员名 访问 Groovy 类的成员 | 使用 对象名.‘成员名‘ 访问类的成员 | 使用 对象名[‘成员名‘] 访问类成员 )