Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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模型对象_Django_Python 3.x_Django Models - Fatal编程技术网

如何使用不存在的外键保存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
vs
league\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。