栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Django的多对多实现添加

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django的多对多实现添加

Django的多对多实现添加
  • 一.生成多对多的数据库
  • 二.查看生成的数据库
  • 三.写应用中的views.py


一.生成多对多的数据库

在Django应用中的models.py中写入以下代码:

from django.db import models
# Create your models here.
# 角色表
class Role(models.Model):
    role = models.CharField(max_length=100)  # 角色
# 用户表
class User(models.Model):
    STATUS = ((0, "禁用"), (1, "启用"))  # 是否请用用户
    username = models.CharField(max_length=100)  # 用户名
    mobile = models.CharField(max_length=11)  # 电话
    email = models.EmailField()  # 邮箱
    status = models.IntegerField(choices=STATUS, default=1)  # 请用状态
    role = models.ManyToManyField(Role)  # 关联角色表

在终端执行

python manage.py makemigrations 应用名
python manage.py migrate 应用名

这两个命名是生成迁移文件和迁移数据库

二.查看生成的数据库

当我们迁移数据库之后,会出现

这样的三个数据库

usertable_role是角色管理的数据库
usertable_user是用户管理的数据库
usertable_user_role是用户和角色关联的数据库

三.写应用中的views.py
class Usertable(View):
    def post(self, request):
        data = json.loads(request.body)
        user = User.objects.create(username=data["username"], mobile=data["mobile"], email=data["email"], status=1)
        # print(data["role"])  # 这是一个列表类型[2, 1]
        user.role.set(data['role'])  # 向角色和用户的关联表添加数据,用set方法
        return JsonResponse({})  # 不是字典类型必须写safe=False
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/989775.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号