【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可以创建自关联关系,也可以创建与尚未定义的模型的关系(模型名称用引号括起来)

相关推荐
天空属于哈夫克39 分钟前
Java 开发|企微外部群主动发送小程序消息实战
开发语言·python·小程序·自动化·企业微信·rpa
戴西软件10 分钟前
PreSys在爆炸与多介质流固耦合中的建模方法:从ALE到SPH的工程实践
linux·python·程序人生·cae
程序员南飞14 分钟前
排序算法举例
java·开发语言·数据结构·python·算法·排序算法
有点心急102115 分钟前
图表展示 MCP 工具
python·aigc·mcp
coding者在努力19 分钟前
LangChain之解析器核心组件.2026年新版讲解,超详细
windows·python·机器学习·langchain·pip
伶俐的猪25 分钟前
性能测试以及面试题
python
52Hz11828 分钟前
力扣394.字符串解码、739.每日温度、84.柱状图中最大的矩形
python·算法·leetcode
XW010599936 分钟前
4-10大公约数和最小公倍数
python·gcd·lcm
Cxiaomu40 分钟前
Python 文件解析: Excel / Word / PDF 的解析、处理、预览与下载
python·word·excel
啊阿狸不会拉杆1 小时前
《计算机视觉:模型、学习和推理》第 10 章-图模型
人工智能·python·学习·机器学习·计算机视觉·图模型