`

django 外键 多对多键使用示例

阅读更多

       需要插入的数据表结构如下:

 

[python] view plain copy
 
  1. class UserInfo(models.Model):  
  2.     user_id =models.AutoField(primary_key=True)  
  3.     user_name=models.CharField(max_length=20,unique=True)   
  4.     depart=models.ForeignKey(DepartmentInfo)  
  5.     role=models.ManyToManyField(Role)  

 

          *注:从上述类中可以看出UserInfo除了一般的表项外,还有有一个外键,和一个多对多的field

 

插入数据方法如下:

 

[python] view plain copy
 
  1.           
  2.         d1=DepartmentInfo.objects.get(depart_id=1) #  d1表示UserInfo的外键数据  
  3.         r1=Role.objects.get(role_name=role)        #  r1表示UserInfo的多对多数据  
  4.         u1=UserInfo(user_name=name,user_pwd=password,sex=sex,mobileno=mobile,email=email,depart=d1)  
  5.         u1.save()  
  6.         u1.role.add(r1)  
  7.         u1.save()  

 

 

总结:

         不管是外键,还是多对多,多对一键等各种情况,都是靠主键来建立对应关系。

  •   普通数据项:直接插入
  •   外键数据项:先获取要插入的外键,然后和普通想一起插入
  •   多对多数据项:获取要插入的多对多数据项,待表中普通数据项和外键数据项save后,使用.add方法加入

 

分享到:
评论

相关推荐

    Django 外键的使用方法详解

    下面我们将详细讲解Django中外键的使用方法。 ### 一、外键的定义 在`models.py`文件中,我们可以使用`ForeignKey`字段类型来创建外键。以下是一个例子: ```python from django.db import models class Song...

    django foreignkey(外键)的实现

    本文详细介绍了 Django 中外键字段的实现和应用。 外键字段在数据库中用于表与表之间建立关联,相当于在关系型数据库中实现“参照完整性”的方式。在 Django 中,它通过 foreign_key 关系在模型间建立链接。具体来...

    django序列化时使用外键的真实值操作

    总之,通过在模型中定义`natural_key`方法并使用`use_natural_foreign_keys=True`参数,我们可以使Django在序列化时显示外键的真实值,提高数据可读性。同时,注意处理多对多关系和模型之间的依赖关系,确保序列化的...

    解决django框架model中外键不落实到数据库问题

    对于多对一关系,可以使用类似`UserProfile`和`UserRole`的例子,通过自定义字段(如`user_id`和`role_id`)来存储关联,而不在数据库中创建外键。 在Django中,还可以通过`SerializerMethodField`来自定义序列化...

    python Django 反向访问器的外键冲突解决

    当你在多个模型中定义了指向同一模型的外键,并且使用了相同的`related_name`时,可能会遇到外键冲突的问题。本文将深入探讨这个问题,并提供解决方案。 首先,让我们看一个简单的例子: ```python from django.db...

    在django admin中配置搜索域是一个外键时的处理方法

    当我们在Django Admin中尝试配置一个外键字段作为搜索域,并且使用了`icontains`等模糊匹配查询时,可能会遇到“relatedField has invalid lookup: icontains”的错误。这是因为Django在处理外键字段时,默认情况下...

    python django model联合主键的例子

    在Django中,通过定义两个外键(ForeignKey)字段`userId`和`roleId`,分别关联到`user`和`role`模型,可以建立这种多对多的关系。`userId`引用`user`模型的`id`,`roleId`引用`role`模型的`id`。 为了将`userId`和...

    Django ORM – 多表实例(聚合与分组查询)

    分组查询常常与聚合函数一起使用,用于按某个或多个字段对数据进行分类。`annotate`函数用于在Django ORM中实现此功能。以下是一些要点: 1. **分组后的值取法**: 分组查询后,可以使用`values`或`values_list`来...

    Django模型序列化返回自然主键值示例代码

    在开发基于Django的应用程序时,我们经常需要在模型之间建立关联关系,比如使用`ForeignKey`来表示一对多的关系。这种关联关系在数据库层面通常表现为外键,但在实际业务逻辑中,我们可能希望在序列化对象时能够返回...

    Django中Aggregation聚合的基本使用方法

    `annotate`方法还可以与外键和多对多关系一起使用,以计算关联模型的聚合值。例如,我们可以找到每个书店中书籍的最低和最高价格: ```python s = Store.objects.annotate(min_price=Min('books__price'), max_...

    Django实现从数据库中获取到的数据转换为dict

    1. **转换模型实例**:该函数接收一个Django模型实例作为输入,然后将其所有字段(包括关系字段,如外键和多对多字段)转换为字典形式。字典中的键是模型字段的名称,值是对应字段的当前值。 2. **字段选择**:你...

    Django数据结果集序列化并展示实现过程

    本示例中涉及到一对多的关系,即一个老师可以有多个学生,而学生可以属于一个或零个老师。我们将详细探讨如何实现这种关系,以及如何序列化和展示数据。 首先,我们定义了两个模型:`Teacher` 和 `Student`。`...

    (完整版)旅行社综合管理系统计算机毕业设计.pdf

    - 数据完整性: 使用约束(如主键、外键、唯一键等)来保证数据的一致性和准确性。 - 安全措施: 实施用户权限管理、加密技术和备份恢复策略等措施保护数据安全。 ### 4. 前端应用程序开发 - **目标**: 开发功能...

Global site tag (gtag.js) - Google Analytics