在django中可以有多个外键吗?但是使用OR运算符vs和
我有不同表格中的参赛者,我正在创建一个分数表,我想做的是在分数表和参赛者表之间设置一个外键,但是对于每个分数,必须有一个人来自两个表格中的一个,而不是两个。这是可能的吗 型号:在django中可以有多个外键吗?但是使用OR运算符vs和,django,django-models,django-admin,Django,Django Models,Django Admin,我有不同表格中的参赛者,我正在创建一个分数表,我想做的是在分数表和参赛者表之间设置一个外键,但是对于每个分数,必须有一个人来自两个表格中的一个,而不是两个。这是可能的吗 型号: class Couples_Round_1(models.Model): event = models.ForeignKey(comp_name, blank=True) dancer_1_fname = models.CharField('Dancer 1 First Name', max_
class Couples_Round_1(models.Model):
event = models.ForeignKey(comp_name, blank=True)
dancer_1_fname = models.CharField('Dancer 1 First Name', max_length = 30)
dancer_1_lname = models.CharField('Dancer 1 Last Name', max_length = 30)
class Couples_Round_2(models.Model):
event = models.ForeignKey(comp_name, blank=True)
dancer_1_fname = models.CharField('Dancer 1 First Name', max_length = 30)
dancer_1_lname = models.CharField('Dancer 1 Last Name', max_length = 30)
class score (models.Model
contestant = models.Foreignkey(round1, round2?????)
judge = models.Foreignkey(judges)
score1 = models.integerfield()
您可能没有多个外键。但是,实现这一点的一种方法是,您可以使用两个单独的外键,并在应用程序级别处理数据验证 例如:
class score (models.Model
contestant_r1 = models.Foreignkey(round1, null=True)
contestant_r2 = models.Foreignkey(round2, null=True)
judge = models.Foreignkey(judges)
score1 = models.integerfield()
现在,您还可以处理逻辑-示例r1
和r2
都是必需的,或者是必需的,等等
我会重新考虑模型
class Couples_Round(models.Model):
round = models.IntegerField()
event = models.ForeignKey(comp_name, blank=True)
dancer_1_fname = models.CharField('Dancer 1 First Name', max_length = 30)
dancer_1_lname = models.CharField('Dancer 1 Last Name', max_length = 30)
score = models.Foreignkey('score')
并通过反向关系指出这些:
class score(models.Model):
judge = models.Foreignkey(judges)
score1 = models.integerfield()
你能展示一下你现在的型号吗?谢谢。好的,我添加了我的型号通用外键解决了这个问题: