学生根据兴趣选择不同的兴趣班,其中学生和班级是多对多的关系。
使用创建模型对象的方式新增数据
# -*- coding: utf-8 -*-
# @Author: Lila
# 初始化django配置
import os
import django
import random
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "blog_manager.settings")
django.setup()
# 导入模型
from cla_stu.models import *
# 清空数据
Clazz.objects.all().delete()
Student.objects.all().delete()
# 创建3个Clazz对象
clazz1 = Clazz.objects.create(cname="舞蹈班")
clazz2 = Clazz.objects.create(cname="编程班")
clazz3 = Clazz.objects.create(cname="西班牙语班")
"""
student = Student.objects.filter(id=1).first()#指定一个学生
set_list = []#创建空列表来存放课程
a = 7#
for name in ["舞蹈班", "编程班","西班牙语班"]:
set_list.append(Clazz(cname=name, id=a)) # 手动指定id
a += 1
aa = student.clazz.bulk_create(set_list) # 返回给aa的是一个列表,里面的元素为Course对象
student.clazz.set(aa) # 通过set方法进行关联关系的建立
"""
# 循环创建10个Student对象
students = []
for i in range(1, 11):
student = Student.objects.create(sno=f"S{i}", sname=f"学生{i}", sage=20)
# 随机选择一个兴趣班,并将其与学生关联
clazz = random.choice([clazz1, clazz2, clazz3])
student.clazz.add(clazz)
创建对象指定关系的另一种方法
# 创建班级对象并保存
c1 = Clazz(cname='烹饪课')
c1.save()
#记得clazz对象创建要在student对象创建前面,不然stu无法关联一个未创建的对象
# 创建学生对象并指定关系
stu1 = Student(sno='1', sname='江直树', sage=20, clazz=c1)
stu1.save()
注意事项
我最开始把脚本文件创在migrations文件夹里面,但是出现了报错,说找不到migrations文件夹
后面我把脚本文件创在migrations外面就不报错了
最后,中间表会生成学生和班级的关系数据:
标签:对象,创建,模型,clazz,objects,student,操作,Clazz From: https://www.cnblogs.com/lila720/p/18071316