【发布时间】:2018-04-05 07:50:13
【问题描述】:
我相信这最好用一个例子来解释。所以,我正在制定一个程序来保存国际和国家比赛的举重成绩。下面是一个(重量)举重模型:
class Lifter(Person):
# Changed from dateTime, as we don't need time of birth
birth_date = models.DateField(null=True)
gender = models.CharField(max_length=10, choices=Gender.choices(),
null=True)
club = models.ForeignKey('Club', null=True)
我想将 lifter 模型连接到 InterntionalResult 模型:
class InternationalResult(models.Model):
lifter = models.ForeignKey(Lifter, null=True)
body_weight = models.FloatField(verbose_name='Kroppsvekt', null=True)
# International group can be (for example) "A" or "B"
group = models.CharField(max_length=5, verbose_name='kategori')
snatch = models.IntegerField()
clean_and_jerk = models.IntegerField()
total = models.IntegerField()
但是,lifter 有一个 ForeginKey 来分组 (club = models.ForeignKey('Club', null=True))。当我将 Lifter 连接到 InternationalResult 时,我想排除这个 ForgeinKey,但仍将 Result 连接到 Lifter 的其余部分。这是因为国际比赛没有以相同方式的俱乐部。
有没有办法做到这一点,还是我应该创建一个新的 InternationalLifter 模型?
感谢您的宝贵时间!
【问题讨论】:
-
你的例子并没有真正解释这个问题。 “排除”这个ForeignKey是什么意思?它是模型上的一个字段,你可以根据模型的验证规则为它输入或不输入数据。
标签: django database model foreign-keys