一.生成多对多的数据库
在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
当我们要实现删除和修改功能的时候要传一个id
所以我们在写修改和删除的时候在urls.py写入以下代码
from django.urls import path from usertable.views import UsertableId urlpatterns = [ #在路由的后面写上一个<int:id>这样就可以获取到id了 path('usertableid/<int:id>', UsertableId.as_view(), name="usertableid"), ]
数据删除
import json from usertable.models import * from django.views import View from django.http import JsonResponse class UsertableId(View): def delete(self, request, id): User.objects.filter(id=id).delete()#直接根据id获取到数据然后用delete()进行删除 return JsonResponse({})
数据的修改
import json from usertable.models import * from django.views import View from django.http import JsonResponse class UsertableId(View): def patch(self, request, id): stb = json.loads(request.body) # 获取修改后的数据 user = User.objects.get(id=id) # 根据id选择要修改的数据 # 进行数据的修改 user.username = stb['username'] user.mobile = stb['mobile'] user.emai = stb['emai'] user.status = stb['status'] user.role.set(stb["role"]) # 修改用户和角色的关联表stb["role"]是一个列表 user.save() # 再用save()进行保存 return JsonResponse({})