实战Django之Model操作之一对多外键(ForeignKey)正反调用

版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/Burgess_zheng/article/details/86593203

目录


Foreginkey

    建立表类

跳转:实战之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.ForeignKey("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.first().name
'小明'
>>> A_obj.n.all()[0].name
'小明'

插入:如果创建数据库表B表没有related_name该参数反向调取:(”B表名小写” + “_set”)
A_obj.b_set.first().name  #得到结果:小明  

主篇:Django之Model操作之一对多外键(ForeignKey)正反调用【ORM篇五】https://blog.csdn.net/Burgess_zheng/article/details/86593434

猜你喜欢

转载自blog.csdn.net/Burgess_zheng/article/details/86593203
今日推荐