【Django】model模型—字段关联关系:多对一,一对一

多对一

例子:如果一个 Car 模型有一个制造者 Manufacturer --就是说一个 Manufacturer 制造许多辆车,但是每辆车都仅有一个制造者-- 那么使用下面的方法定义这个关系:

python 复制代码
from django.db import models

# 制造商
class Manufacturer(models.Model):
    # ...
    pass

# 汽车
class Car(models.Model):
	# ForeignKey字段,Manufacturer为关联的模型
    manufacturer = models.ForeignKey(Manufacturer, on_delete=models.CASCADE)
    # ...

ForeignKey字段名最好是关联的模型名,需要添加一个位置参数,即关联的模型类名。

一对一

例子:一个餐厅的模型,和一个位置信息模型,一个餐厅对应一个地点。

python 复制代码
from django.db import models

# 位置信息
class Place(models.Model):
    # ...
    pass

# 餐厅
class Restaurant(models.Model):
	# OneToOneField字段,Manufacturer为关联的模型
    place = models.OneToOneField(Place, on_delete=models.CASCADE)
    # ...

处理这样的情况时最好使用模型继承 ,它隐含的包括了一个一对一关系。

ForeignKeyOneToOneField可以创建自关联关系,也可以创建与尚未定义的模型的关系(模型名称用引号括起来)

相关推荐
Cloud_Shy618几秒前
解读《Effective Python 3rd Edition》:从练气到老魔(第二章 Item 13 - 16)
c语言·开发语言·网络·笔记·python·编辑器
E_ICEBLUE6 分钟前
Python 办公自动化:如何轻松调整 Word/PDF 页面大小为 Legal 尺寸
python·pdf·word
战斗强7 分钟前
RTX 5090 Grounded-SAM-2 实时 RTSP 跟踪部署指南
python·conda
Wonderful U7 分钟前
Python+Django实战 | 智能图书管理系统:从传统人工到全自动数字化管理
python·信息可视化·django
耶夫斯计9 分钟前
【xy_healthy_assistant:LLM+Mem0 +skills个性化助手开发手记】
人工智能·python·健康医疗
csdn_aspnet9 分钟前
Python 霍尔分区算法(Hoare‘s Partition Algorithm)
开发语言·python·算法
❀͜͡傀儡师11 分钟前
告别脚手架:用 JBang 打通 Java、Kotlin、Python 的脚本化开发
java·python·kotlin·jbang
nashane13 分钟前
HarmonyOS 6学习:应用无响应(AppFreeze)故障排查与性能优化指南
人工智能·pytorch·python
Rain50914 分钟前
GitLab-Runner + AI 代码审查服务 + 远程大模型 全套部署运维实战
linux·运维·人工智能·python·ci/cd·gitlab·ai编程
学计算机的计算基14 分钟前
MySQL 锁体系全解:从 MDL 到间隙锁,一次讲透
java·数据库·笔记·python·mysql