Django 操做Mysql連表操做

多對多 ManyToManyField

models.py python

from django.db import models

class UserInfo(models.Model):
    username=models.CharField(max_length=30)
    password=models.CharField(max_length=30)
    email=models.CharField(max_length=30)
    
class UserGroup(models.Model):
    GroupName=models.CharField(max_length=30)
    user=models.ManyToManyField(UserInfo)      #多對多關係字段

生成的用戶組表                                                                生成的用戶信息表django

                                 

注意:如上圖所示,Django 定義 的 ManyToManyField 字段並無在 UserGroup 表中生成  app

UserGroup 跨表取值spa

u = models.UserGroup.user.all()         QuserSet 對象,內部爲列表code

for i in u:
    u.username對象

給兩個實例對象創建關係

views.pyrem

from django.shortcuts import render,HttpResponse
from app01 import models

def index(request):
    g1=models.UserGroup.objects.get(id=1)
    u1=models.UserInfo.objects.get(id=1)
    g1.user.add(u1)                             #給2個實例對象,創建多對多關係
    return HttpResponse('添加關係成功')

方法1: g1.user.add(u1)  有多對多字段 含義以下圖所示get

刪除class

remove()  如 :g1.user.remove(u1) ,g1.user.remove(2,3) ,g1.user.remove(*[1,2,3])
clear()  刪除全部 
    
改set()  如:g1.user.set(u1) email

方法2:u1.usergroup_set.add(g1) 無多對多字段  注意這裏是1個下劃線

相關文章
相關標籤/搜索