Django模型与同一个表中的2个外键
在Django模型中,可以定义多个外键关联到同一个表。这种情况下,需要使用models.ForeignKey
来定义外键字段,并指定to
参数来指定关联的表。
例如,假设有一个User
模型和一个Post
模型,Post
模型中有两个外键字段author
和editor
,它们都关联到User
模型。可以这样定义Post
模型:
from django.db import models
from .models import User
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='posts_authored')
editor = models.ForeignKey(User, on_delete=models.CASCADE, related_name='posts_edited')
在上面的例子中,author
和editor
字段都是外键,它们关联到User
模型。on_delete
参数指定了当关联的User
对象被删除时,Post
对象的行为。related_name
参数则指定了反向关联的名称,即User
模型中可以通过posts_authored
和posts_edited
来获取与该用户相关的所有Post
对象。
需要注意的是,在定义多个外键关联到同一个表时,需要为每个外键字段指定不同的related_name
参数,以避免命名冲突。
领取专属 10元无门槛券
手把手带您无忧上云