一.生成多对多的数据库
在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