anh*_*ran 3 django django-models
我想要一个带有来自同一个表的2个外键的Django模型.这是一个事件表,有2列供员工使用:'home'和'away'.但我收到此错误:错误:一个或多个模型未验证...
class Team(models.Model):
name = models.CharField(max_length=200)
class Match(models.Model):
home = models.ForeignKey(Team)
away = models.ForeignKey(Team)
Run Code Online (Sandbox Code Playgroud)
对此有任何想法.谢谢!
Django也追随关系.默认情况下,它会match_set在Team对象上创建属性.因为您引用了Team两次,所以必须通过在s 上提供related_name属性来区分这些向后属性ForeignKey.
class Match(models.Model):
home = models.ForeignKey(Team, related_name='home_set')
away = models.ForeignKey(Team, related_name='away_set')
Run Code Online (Sandbox Code Playgroud)
更改Match要使用的模型related_name.
class Match(models.Model):
home = models.ForeignKey(Team, related_name="home_set")
away = models.ForeignKey(Team, related_name="away_set")
Run Code Online (Sandbox Code Playgroud)
该文档有这样的说法related_name:
用于从相关对象返回到此关系的关系的名称.
你得到的错误是因为从Team侧面会有两个关系,他们都会有名字,即.match.你可以从Team侧面使用这个team.match_set.通过改变related_name第二个FK你正在解决这个问题.
更新
正如@TörökGábor 所说,你现在可以分别使用team.home_set和team.away_set.
| 归档时间: |
|
| 查看次数: |
3618 次 |
| 最近记录: |