Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于django.models中的多重关系?这里没有_Django_Django Models - Fatal编程技术网

关于django.models中的多重关系?这里没有

关于django.models中的多重关系?这里没有,django,django-models,Django,Django Models,这是我的模特 from django.db import models # Create your models here. class Leagues(models.Model): LeagueName = models.CharField(max_length=200) class Team(models.Model): TeamName = models.CharField(max_length=200) class LeagueTable(models.Model

这是我的模特

from django.db import models

# Create your models here.

class Leagues(models.Model):
    LeagueName = models.CharField(max_length=200)

class Team(models.Model):
    TeamName = models.CharField(max_length=200)

class LeagueTable(models.Model):
    league = models.ForeignKey(Leagues)
    team = models.CharField(max_length=200)
    matches_played = models.IntegerField()
    matches_won = models.IntegerField()
    matches_drawn = models.IntegerField()
    matches_lost = models.IntegerField()
    points = models.IntegerField()

class FixtureTable(models.Model):
    league = models.ForeignKey(Leagues)
    fixture_date = models.DateField('Fixture Date')
    team_one = models.CharField(max_length=200)
    team_one_score = models.IntegerField()
    team_two = models.CharField(max_length=200)
    team_two_score = models.IntegerField()
在“类固定表”中,我希望团队1和团队2链接到“类团队”模型中的两个不同团队。如何创建多个关系,或者是可能的

PS:这纯粹是一个noob,有一点编程经验,但没有python或数据库方面的经验


谢谢。

您可以为同一型号创建任意数量的外键。我怀疑是Django给了您一个错误,告诉您需要指定一个相关的名称,这让您很困惑

默认情况下,Django在表单
\u set
的相反模型上创建一个属性。因此,在以下场景中:

class FixtureTable(models.Model):
    team_one = models.ForeignKey(Team)
Django将向
团队
添加一名相关经理作为
fixturetable\u集
。如果你当时这样做了:

class FixtureTable(models.Model):
    team_one = models.ForeignKey(Team)
    team_two = models.ForeignKey(Team)
Django会尝试添加相同的属性两次,但显然失败了。修复方法是指定一个
相关的\u名称
,这样每个名称都可以有一个唯一的相关管理器:

class FixtureTable(models.Model):
    team_one = models.ForeignKey(Team, related_name='team_one_fixturetables')
    team_two = models.ForeignKey(Team, related_name='team_two_fixturetables')

然后,一切都会好起来的。您可以为
related\u name
指定任何您喜欢的内容,只要它对于模型是唯一的。

还有一件事,尽管我正在学习教程,但我发现,最好的学习方法是,创建您自己的问题,并在解决您自己的问题时遵循教程。再次谢谢你,亲爱的。。。这帮我解决了问题。。谢谢@Chris Pratt