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

相关推荐
0思必得018 小时前
[Web自动化] Selenium处理动态网页
前端·爬虫·python·selenium·自动化
韩立学长18 小时前
【开题答辩实录分享】以《基于Python的大学超市仓储信息管理系统的设计与实现》为例进行选题答辩实录分享
开发语言·python
qq_1927798718 小时前
高级爬虫技巧:处理JavaScript渲染(Selenium)
jvm·数据库·python
u01092727118 小时前
使用Plotly创建交互式图表
jvm·数据库·python
爱学习的阿磊18 小时前
Python GUI开发:Tkinter入门教程
jvm·数据库·python
Imm77719 小时前
中国知名的车膜品牌推荐几家
人工智能·python
tudficdew19 小时前
实战:用Python分析某电商销售数据
jvm·数据库·python
sjjhd65219 小时前
Python日志记录(Logging)最佳实践
jvm·数据库·python
2301_8213696120 小时前
用Python生成艺术:分形与算法绘图
jvm·数据库·python
机 _ 长20 小时前
YOLO26 改进 | 基于特征蒸馏 | 知识蒸馏 (Response & Feature-based Distillation)
python·深度学习·机器学习