【发布时间】:2021-09-15 18:41:59
【问题描述】:
我想将此字典列表存储在 Django 数据库中:
h = [
{'sale_id': 14,
'name': 'Macarena',
'fecha': datetime.date(2021, 3, 11),
'debe': 500.0},
{'sale_id': 14,
'name': 'Macarena',
'fecha': datetime.date(2021, 4, 11),
'debe': 500.0},
{'sale_id': 15,
'name': 'Yamila',
'fecha': datetime.date(2021, 4, 14),
'debe': 2000.0}
]
我试过了:
h = tabla_creditos()
class Creditos1(models.Model):
sale_id = models.IntegerField(default=0)
name = models.CharField(max_length=150)
fecha = models.DateTimeField(default=datetime.now)
debe = models.IntegerField(default=0)
for i in range(0,len(h)):
Creditos1.objects.create(name=h[i]['name'], sale_id=h[i]['sale_id'], fecha=h[i]['fecha'], debe=h[i]['debe'])
其中“h”是那个字典,它来自“tabla_creditos()”函数。然后,我尝试使用“objects.create”为数据库创建值,但我得到了存储在数据库中的重复值:
那么,我怎样才能将该字典存储在数据库中?
我找到了这个解决方案:How to store a dictionary in a Django database model's field,但没有一个答案对我有帮助。
谢谢!
编辑 有了 Rohith 的回答,我得到了这个:
但我想要这样的东西,在数据库列中转换字典的每个键:
【问题讨论】:
-
尝试使用 Django JSON 字段docs.djangoproject.com/en/3.2/ref/models/fields/#jsonfield
-
这能回答你的问题吗? How to store a dictionary on a Django Model?
-
如果您使用 JSON 或字符串字段来存储字典,则所有内容都存储在一个字段(1 列)中。你不能再做数据库的东西,比如按 sale_id 过滤。那可能不是你想要的?如果我猜对了,那么您将把字典的数据存储到数据库中,而不是字典本身。