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

相关推荐
IT·小灰灰8 分钟前
基于Python的机器学习/数据分析环境搭建完全指南
开发语言·人工智能·python·算法·机器学习·数据分析
程序员爱钓鱼44 分钟前
Python职业路线规划:从入门到高级开发者的成长指南
后端·python·trae
程序员爱钓鱼1 小时前
Python 编程实战 · 进阶与职业发展:自动化运维(Ansible、Fabric)
后端·python·trae
rising start1 小时前
二、python面向对象高级
开发语言·python
虎头金猫1 小时前
随时随地处理图片文档!Reubah 加cpolar的实用体验
linux·运维·人工智能·python·docker·开源·visual studio
Yue丶越1 小时前
【Python】基础语法入门(二)
android·开发语言·python
郝学胜-神的一滴2 小时前
Effective Python 第52条:用subprocess模块优雅管理子进程
linux·服务器·开发语言·python
万粉变现经纪人2 小时前
如何解决 pip install 编译报错 ‘cl.exe’ not found(缺少 VS C++ 工具集)问题
开发语言·c++·人工智能·python·pycharm·bug·pip
r***11332 小时前
【玩转全栈】----Django模板语法、请求与响应
数据库·python·django
___波子 Pro Max.3 小时前
Python类型注解详解与应用
python