Table1
,我从一个调用特定API的管理脚本中获取数据。
Table2
还从Api获取数据。场景是xid
和kid
相同,因此我实现了OneToOne
关系,以便可以在{{1}的上下文中轻松从table1
获取相关项目}。必须填充table2
才能填充Table1
,因为只有这样才能分配table1
实例。 table2
已存在于table1中,但仍然出现错误:
5687
ValueError: Cannot assign "5687": "Table2.kid" must be a "Table1" instance.
Models.py
这是我的脚本代码,与获取我的数据的两个管理命令相同。
class Table1(models.Model):
xid = models.IntegerField(primary_key=True)
amount = models.IntegerField()
class Table2(models.Model):
kid = models.OneToOneField(Table1,primary_key=True, on_delete=models.CASCADE)
vid = models.IntegerField(null=True, blank=True)
g_amount = models.IntegerField()
Management/commands/script.py
或者应该有一种方法我不需要拥有 """ API CODE """
data = {
'kid': kid,
'vid': vid,
'g_amount': g_amount
}
if Table2.objects.filter(vid=xid).exists() or Table1.objects.filter(xid=kid).exists() is False:
continue
else:
# print(data)
instance = Table2(**dataff)
instance.save()
关系。使用Django的ORM,可以构建一个查询,该查询将把来自这两个表的实例组合到一个表中并将其放置在虚拟表中,这样我就不会失去ORM功能。
答案 0 :(得分:0)
在声明数据字典之后,将应用对模型的条件检查。它将在if条件之后声明,以便可以使用条件保存字典。