需要插入的数据表结构如下:
- class UserInfo(models.Model):
- user_id =models.AutoField(primary_key=True)
- user_name=models.CharField(max_length=20,unique=True)
- depart=models.ForeignKey(DepartmentInfo)
- role=models.ManyToManyField(Role)
*注:从上述类中可以看出UserInfo除了一般的表项外,还有有一个外键,和一个多对多的field
插入数据方法如下:
- d1=DepartmentInfo.objects.get(depart_id=1) # d1表示UserInfo的外键数据
- r1=Role.objects.get(role_name=role) # r1表示UserInfo的多对多数据
- u1=UserInfo(user_name=name,user_pwd=password,sex=sex,mobileno=mobile,email=email,depart=d1)
- u1.save()
- u1.role.add(r1)
- u1.save()
总结:
不管是外键,还是多对多,多对一键等各种情况,都是靠主键来建立对应关系。
- 普通数据项:直接插入
- 外键数据项:先获取要插入的外键,然后和普通想一起插入
- 多对多数据项:获取要插入的多对多数据项,待表中普通数据项和外键数据项save后,使用.add方法加入
相关推荐
下面我们将详细讲解Django中外键的使用方法。 ### 一、外键的定义 在`models.py`文件中,我们可以使用`ForeignKey`字段类型来创建外键。以下是一个例子: ```python from django.db import models class Song...
本文详细介绍了 Django 中外键字段的实现和应用。 外键字段在数据库中用于表与表之间建立关联,相当于在关系型数据库中实现“参照完整性”的方式。在 Django 中,它通过 foreign_key 关系在模型间建立链接。具体来...
总之,通过在模型中定义`natural_key`方法并使用`use_natural_foreign_keys=True`参数,我们可以使Django在序列化时显示外键的真实值,提高数据可读性。同时,注意处理多对多关系和模型之间的依赖关系,确保序列化的...
对于多对一关系,可以使用类似`UserProfile`和`UserRole`的例子,通过自定义字段(如`user_id`和`role_id`)来存储关联,而不在数据库中创建外键。 在Django中,还可以通过`SerializerMethodField`来自定义序列化...
当你在多个模型中定义了指向同一模型的外键,并且使用了相同的`related_name`时,可能会遇到外键冲突的问题。本文将深入探讨这个问题,并提供解决方案。 首先,让我们看一个简单的例子: ```python from django.db...
当我们在Django Admin中尝试配置一个外键字段作为搜索域,并且使用了`icontains`等模糊匹配查询时,可能会遇到“relatedField has invalid lookup: icontains”的错误。这是因为Django在处理外键字段时,默认情况下...
在Django中,通过定义两个外键(ForeignKey)字段`userId`和`roleId`,分别关联到`user`和`role`模型,可以建立这种多对多的关系。`userId`引用`user`模型的`id`,`roleId`引用`role`模型的`id`。 为了将`userId`和...
分组查询常常与聚合函数一起使用,用于按某个或多个字段对数据进行分类。`annotate`函数用于在Django ORM中实现此功能。以下是一些要点: 1. **分组后的值取法**: 分组查询后,可以使用`values`或`values_list`来...
在开发基于Django的应用程序时,我们经常需要在模型之间建立关联关系,比如使用`ForeignKey`来表示一对多的关系。这种关联关系在数据库层面通常表现为外键,但在实际业务逻辑中,我们可能希望在序列化对象时能够返回...
`annotate`方法还可以与外键和多对多关系一起使用,以计算关联模型的聚合值。例如,我们可以找到每个书店中书籍的最低和最高价格: ```python s = Store.objects.annotate(min_price=Min('books__price'), max_...
1. **转换模型实例**:该函数接收一个Django模型实例作为输入,然后将其所有字段(包括关系字段,如外键和多对多字段)转换为字典形式。字典中的键是模型字段的名称,值是对应字段的当前值。 2. **字段选择**:你...
本示例中涉及到一对多的关系,即一个老师可以有多个学生,而学生可以属于一个或零个老师。我们将详细探讨如何实现这种关系,以及如何序列化和展示数据。 首先,我们定义了两个模型:`Teacher` 和 `Student`。`...
- 数据完整性: 使用约束(如主键、外键、唯一键等)来保证数据的一致性和准确性。 - 安全措施: 实施用户权限管理、加密技术和备份恢复策略等措施保护数据安全。 ### 4. 前端应用程序开发 - **目标**: 开发功能...