资料库中的一对多如何在 django实现呢
先在app models.py 创建ClassRoom
执行迁移,像之前一样在终端输入
python manage.py makemigrations
python manage.py migrate
创建几笔ClassRoom资料
修改原本的Student
执行迁移,像之前一样在终端输入
python manage.py makemigrations
python manage.py migrate
可能会想说为什么这么麻烦,因为我不想改之前在Student的资料,所以只好直接让外键预设值为ClassROOM的第一笔资料
不过最好还是在一开始就先想好怎么设计资料库,不要突然让它突然多外键这种
有的时候遇到资料库这边的问题可以去删除app/migrations中的档案,除了0001_initial.py和__init__.py
对了有这个__init__.py代表它是一个包
回到主题可以看到 Student里的ClassRooM属性值,都变成了ClassRoom object (1)
这个object 不是我们想要看到的
像上一张的方法
修改app 中的models.py
修改app 中的 admin.py
发现一样在Student里的ClassROOM属性值,一样是ClassRoom object (1)
这时要修改的地方其实是覆写__str__方法 (蓝色往上箭头代表覆写,在pycharm)
这样资料库那边就可以看到ClassRoom的name
修改这边也可以直接看到值,不在是object,是不是很方便呢
这篇完整程式
models.py
admin.py