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

相关推荐
PythonFun7 分钟前
WPS动态序号填充,告别手动调整烦恼
java·前端·python
tackchen9 分钟前
venv-manager 管理 Conda 环境 和 Python 虚拟环境 (venv)
开发语言·python·conda
py小王子17 分钟前
GitHub 文件/文件夹批量上传工具
python·github
小鸡吃米…36 分钟前
TensorFlow——Keras 框架
人工智能·python·tensorflow·keras
懒惰的bit43 分钟前
Python入门学习记录
python·学习
米羊1211 小时前
Spring 框架漏洞
开发语言·python
二十雨辰1 小时前
[python]-闭包和装饰器
python
大尚来也1 小时前
Python 调用 Ollama 本地大模型 API 完全指南
开发语言·python
qq_24218863321 小时前
Python 春节贺卡代码
开发语言·python
Lenyiin1 小时前
《LeetCode 顺序刷题》11 -20
java·c++·python·算法·leetcode·lenyiin