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

相关推荐
2401_879693871 分钟前
自动化与脚本
jvm·数据库·python
马猴烧酒.8 分钟前
【Java复习|Lambda表达式】Java Lambda 表达式、函数式接口与匿名内部类:从起源到原理
java·开发语言·ide·笔记·python·spring
AI视觉网奇19 分钟前
docker v2安装
人工智能·python
Csvn26 分钟前
属性描述符与元类基础
python
小罗和阿泽32 分钟前
GUI 自动化测试 pywinauto测试框架
开发语言·python·功能测试·测试工具·pytest
2301_8073671941 分钟前
Win10开机自启动怎么设置?关闭开机启动6大方法
开发语言·python·pygame
Cocktail_py1 小时前
Windows直接部署crawlab
windows·python·golang
ZTLJQ1 小时前
构建现代Web应用:Python全栈框架完全解析
前端·数据库·python
花间相见1 小时前
【JAVA基础14】—— 二维数组详解:从基础到实战应用
java·python·算法