如何使用不存在的外键保存django模型对象
我有两种型号如何使用不存在的外键保存django模型对象,django,python-3.x,django-models,Django,Python 3.x,Django Models,我有两种型号 class League(models.Model): league_id = models.IntegerField(primary_key=True) class Fixture(models.Model): league_id = models.ForeignKey('League',null=True, on_delete=models.SET_NULL) 夹具模型与League_id外键字段的League模型相关。我想创建Fixture类的对象,当我尝试创
class League(models.Model):
league_id = models.IntegerField(primary_key=True)
class Fixture(models.Model):
league_id = models.ForeignKey('League',null=True, on_delete=models.SET_NULL)
夹具模型与League_id外键字段的League模型相关。我想创建Fixture类的对象,当我尝试创建它们时,我知道我不能这样做,因为我的Fixture模型与没有值的league模型相关。我在谷歌上搜索这个问题,发现它是Django最流行的问题。有人能告诉我如何创建此类对象,这些对象引用不存在的对象吗
league_id = models.ForeignKey('League',null=True, blank=True, on_delete=models.SET_NULL)
此外,您应该将该字段命名为
league
vsleague\u id
。它包含对联盟模型的引用,而不仅仅是id。如果我理解,我的问题可以通过添加blank=True来解决,但我不理解为什么我应该在外键字段中指定blank=True,实际上是在主键字段中。另外,我不明白你关于league_id的说明,你能更深入地解释一下吗?为了Django表单验证的目的,你需要使用blank=True。如果未设置为允许空白值,则使用表单(例如通过Django管理面板)将要求您输入联盟。这里是一个很好的答案不同的组合和它们的影响是:它扩大了多一点Django文档,至于如何空白关键字影响事物,但你可以阅读直接在这里的文档:至于<代码>联赛<代码> >代码> LeaGeEID >让我们假设你有一些联赛对象和夹具对象。如果通过fixtures=Fixture.objects.all()
获取所有装置,则每个装置对象都将有一个对其相应联盟对象的引用。因此,您必须执行fixture[0]。league
,您将获得一个实际的league对象来操作,而不仅仅是该league的id。