django ORM的外键操作

外键约束示例

#models操作如下
class HostInfo(models.Model):
    servername = models.CharField(max_length=32)
    serverip = models.CharField(max_length=32)
    serverpassword = models.CharField(max_length=64)
    server_group = models.ForeignKey("GroupInfo",to_field="id")

class GroupInfo(models.Model):
    caption = models.CharField(max_length=32)

注意:  server_group 是一个对象 里边封装了id和caption,如果想取 caption可以通过如下方法:

 for row in list

  row.servername

  row.serverip

  row.server_group.caption  

时间: 2024-12-23 00:28:35

django ORM的外键操作的相关文章

Django ORM - 001 - 外键表查询主表信息

开始用Django做web开发,我想大家都会遇到同样的问题,那就是如何高效快速的查询需要的数据,MVC都很简单,但是ORM折腾起来就有些费时间,我准备好好研究下Django ORM,所以会有一个系列的Blog,欢迎大家讨论拍砖. 1. 如何快速的通过外键表获取主表的信息 演示Class from django.db import models import uuid class Employee(models.Model): employee_id = models.UUIDField(prim

DjangoORM外键操作

1.经常修改的东西一般不放到内存里面,而是放到一张表里. 表跟表之间是可以存在关系的,最基本的就是一对多的关系. 3.Django ORM 外键操作 连表关系之一对多,models.ForeignKey(ColorDic) models.py 表关联 数据查询 创建数据 出处:http://blog.csdn.net/fgf00/article/details/53678205 待续

django 外键操作

下面定义两个模型,一个主表,一个字表. 举例说明: 如何通过主表对象找到对应的子表对象? 如何通过子表对象找到对应的主表对象? class Person(models.Model); name = models.CharField('作者姓名', max_length=10) age = models.IntegerField('作者年龄') class Book(models.Model): person = models.ForeignKey(Person,related_name='per

django中的数据库外键操作

以MYSQL为例: (1)在model中定义两个数据表,食物信息和食物类别信息 class foodInfo(models.Model): food_id = models.AutoField(max_length=4)   #自定义主键,不指定主键默认会生成一个名为'ID'列的主键 food_name = models.CharField(max_length=10) food_content = models.CharField(max_length=100) food_price = mo

使用sqlalchemy的ORM创建外键关联时报错

在学习使用sqlalchemy模块的时候踩了一个坑,分享一下. 埋下隐患 我先用下面的语句创建了一张学生信息表: > CREATE TABLE student ( -> id INT UNSIGNED AUTO_INCREMENT, -> name VARCHAR(20) NOT NULL, -> age TINYINT, -> PRIMARY KEY (id) -> ); 表里就3个字段:自增id(无符号的数字,自增id不会是负数,当然用无符号,感觉自己好专业),na

django模型中, 外键字段使用to_filed属性 指定到所关联主表的某个字段

在django项目的开发过程中,在设计模型时一开始将主键设置成了一个自定义的字段,但是在创建搜索索引时却发现必须要存在一个id的字段,并且为主键(不知道是否是项目一开始就这样配置的原因), 但此时表结构已经整体固定下来,并且有外键关联到了这个自定义的的主键,整个后台视图逻辑也已经封装完成,如果主表的主键发生改变,那么外键所在的表就会默认关联到新的主键上,那个后台视图的改动就会非常麻烦,这时就需要使用外键字段中的to_field属性来指定所关联的主表的某个字段,而不会影响到原先的逻辑 demo如下

mysql 外键操作

/*主键唯一的不能为空null,一个表的主键只能由一个,可以有一个主键一个唯一uk间*//*primary key(sname,sid) 复合主键可以同时控制sname,sid用的比较少*//*外键fk一般都是2个表,只支持innodb引擎*/drop table teacher;create table teacher( tid smallint unsigned not null auto_increment primary key, tname varchar(10))engine=inn

Django学习手册 - ORM 外键

Django 外键操作 关键语法: models.ForeignKey("UserGroup",to_field="gid",default=1,on_delete=models.CASCADE) 参数: "UserGroup"  #外键另外一张表 to_field="gid" #另外一张表的字段 on_delete=models.CASCADE  #因为不加这个会报错相关(https://www.cnblogs.com/ph

Django框架进阶5 models常用字段及参数, choices参数, 自动显示sql命令配置, orm查询优化相关, orm中的事务操作, MTV与MVC模型, 图书管理系统(图书的增删改查)

models中的常用字段 AutoField(primary_key=True) 主键   (int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列.) CharField(max_length=32)     varchar(32) IntegerField()       int BigIntergerField()           bigint DecimalField()    decimal EmailField(