Python全系列 教程
3567个小节阅读:5930.4k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
xxxxxxxxxx
from django.db import models
# Create your models here.
class Classes(models.Model):
name = models.CharField(max_length=20, verbose_name='班级')
class Student(models.Model):
SEX_CHOICES = ((1,'男')), (2, '女')
name = models.CharField(max_length=20, verbose_name='姓名')
age = models.IntegerField(null=True, blank=True, verbose_name='年龄')
sex = models.IntegerField(choices=SEX_CHOICES, default=1, verbose_name='性别')
classes = models.ForeignKey(Classes, on_delete=models.SET_NULL,null=True,verbose_name='班级')
xxxxxxxxxx
python manage.py makemigrations
python manage.py migrate
xxxxxxxxxx
insert into t_class (name) values ('Python');
insert into t_class (name) values ('SQL');
insert into t_student(name,age,sex,classes) values ('BaiZhan',18,1,1);
insert into t_student(name,age,sex,classes) values ('SXT',20,2,1);
xxxxxxxxxx
class ClassSerializer(serializers.ModelSerializer):
class Meta:
model = Classes
fields = '__all__'
说明:
只是在StudentSerializer类的meta中 fields 字段中添加了 classes 字段,那么序列化时,显示的只是对应的班级的主键id,如:{"id": 3, "name": "terry", "age": 18, "sex": 1, "classes":1}
如果想序列化对应的班级的信息,那么需要在 StudentSerializer 中,重新指定 classes 字段
xxxxxxxxxx
class StudentSerializer(serializers.ModelSerializer):
#新增 所属班级 属性
classes = ClassesSerializer()
class Meta:
model = Student
fields = ['id', 'name', 'age', 'sex', 'classes']
当前修改后的序列化内容为:{"id": 3, "name": "terry", "age": 18, "sex": 1, "classes": {"id": 1, "name": "\u4e00\u73ed"}}
测试
xxxxxxxxxx
GET http://127.0.0.1:8000/rest_app/students/
实时学习反馈
1. 在班级和学生对应关系中,想获取学生信息时候获取该学生所在班级信息,那么需要在 StudentSerializer 中,重新指定 classes 字段,下划线处需要填写的代码是_____:
xxxxxxxxxx
class StudentSerializer(serializers.ModelSerializer):
#新增 所属班级 属性
classes = ClassesSerializer()
class Meta:
model = Student
fields = ['id', 'name', 'age', 'sex', ________]
A 'classes'
B classes
C 'classes()'
D classes()
2. Django框架迁移模型的命令是_____:
A python manage.py shell
B python manage.py run
C python manage.py runserver
D python manage.py migrate
答案
1=>A 2=>D