版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/Burgess_zheng/article/details/86592519
目录
- OneToOneField方式
- 建立表类
- 根据类表进行django的shell命令行操作外键正反调用
- Foreginkey+Unique=True方式
- 建立表类
- 根据类表进行django的shell命令行操作外键正反调用
OneToOneField方式
建立表类
跳转:实战之Django之Model建表流程 https://blog.csdn.net/Burgess_zheng/article/details/86564984
路径:project/modes_handle/models.py
from django.db import models class A(models.Model): name = models.CharField(max_length=34) class B(models.Model): name = models.CharField(max_length=34) a_key = models.OneToOneField("A", related_name='n', on_delete=models.CASCADE)
进入项目目录下执行以下面命令(创建表 or 重新生成表结构)
python manage.py makemigrations
python manage.py migrate
根据类表进行django的shell命令行操作外键正反调用
进入项目目录(执行如下命令进行django提供的shell命令行)
F:\Burgess\Python\pycharm实验脚本\test\project_burgess>python manage.py shell
>>> from modes_handle import models >>> A_obj = models.A.objects.create(name='小红') >>> B_obj = models.B.objects.create(name='小强',a_key_id=1) >>> A_obj.name '小红' >>> B_obj.name '小强' >>> B_obj.a_key.name '小红' >>> A_obj.n.name '小强'
Foreginkey+Unique=True方式
建立表类
路径:project/modes_handle/models.py
from django.db import models class A(models.Model): name = models.CharField(max_length=34) class B(models.Model): name = models.CharField(max_length=34) a_key = models.ForeignKey("A",unique=True,related_name='n',on_delete=models.CASCADE)
进入项目目录下执行以下面命令(创建表 or 重新生成表结构)
python manage.py makemigrations
python manage.py migrate
根据类表进行django的shell命令行操作外键正反调用
进入项目目录(执行如下命令进行django提供的shell命令行)
F:\Burgess\Python\pycharm实验脚本\test\project_burgess>python manage.py shell
>>> from modes_handle import models >>> A_obj = models.A.objects.create(name='小红') >>> B_obj = models.B.objects.create(name='小强',a_key_id=1) >>> A_obj.name '小红' >>> B_obj.name '小强' >>> B_obj.a_key.name '小红' >>> A_obj.n.all()[0].name '小强'
如果建表没有使用related_name 调用方式:表类名小写+_set 如:A_obj.b_set.all()[0].name
主篇:Django之Model操作之一对一外键正反调用【ORM篇四】https://blog.csdn.net/Burgess_zheng/article/details/86591085