有没有办法只引用 Django ForeignKey 中的某些字段?
Posted
技术标签:
【中文标题】有没有办法只引用 Django ForeignKey 中的某些字段?【英文标题】:Is there a way to refer to only some fields in a Django ForeignKey? 【发布时间】: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是什么意思?它是模型上的一个字段,你可以根据模型的验证规则为它输入或不输入数据。 【参考方案1】:你想用它做什么?这将显示在模板中吗? “排除”字段的最简单方法是不渲染它,或者一般不使用它。不用担心性能,外键关系只有在评估时才会获取。
【讨论】:
以上是关于有没有办法只引用 Django ForeignKey 中的某些字段?的主要内容,如果未能解决你的问题,请参考以下文章
Django——有没有办法从模板中引用/获取当前页面 URL? [复制]
在 Django 中有没有办法根据一些预定义的变量只公开一定范围的 URL?