django - 多对多关系 - 电影 - 角色 - 演员
解决方案
您正在寻找through=…
模型 [Django-doc]。因此,我们可以创建三个模型,并定义模型ManyToManyField
所在的Role
位置through
:
class Movie(models.Model):
title = models.CharField(max_length=45)
release_date = models.DateField()
synopsis = models.TextField()
duration = models.DurationField()
class Person(models.Model):
first_name = models.CharField(max_length=45)
last_name = models.CharField(max_length=45)
birth_date = models.DateField()
movies = models.ManyToManyField(Movie, through='Role', related_name='actors')
class Role(models.Model):
person = models.ForeignKey(Person, on_delete=models.CASCADE)
movie = models.ForeignKey(Movie, on_delete=models.CASCADE)
role = models.CharField(max_length=45)
推荐阅读
- html - 在 Nightwatch 中单击 XPath 选择的 href 链接?
- python - 使用python将输出文件写入给定位置
- firebase - 如何从地图对象 Firebase (Flutter) 中获取数据
- python - 是否有将字符串转换为数字并返回用于机器学习的功能
- android - 如何获取列表视图的所有项目及其位置并将它们意图用于另一个活动,并且可以转到下一个和后退位置
- oracle - 如何通过 plsql 函数从表中生成列表?
- c# - ASP.NET Core MVC (2.2) 错误中间件未触发错误页面
- php - Laravel 队列向同一个收件人发送多个通知
- android - Android BottomNavigationView 一个带有不同未选中/选中颜色的选项卡
- maven - 如何将内部版本号(来自 Jenkins)添加到 jar 文件?