我已经能够将数据插入到我的字段(即JSONField )中
modelName.family_member.append({"name":'Brian King',
"relationship":'Father',
"occupation":'Engineer'})但我希望添加一个id字段,它将自动增加,就像mysql中的那样,因此数据调用类似于
{'id':1,
"name":'Brian King',
"relationship":'Father',
"occupation":'Engineer'},
{'id':2,
"name":'Demi King',
"relationship":'Mother',
"occupation":'Teacher'},我使用Django和mysql作为我的数据库。我的模型声明是这样的。
family_member = models.JSONField(default=jsonfield_default_value)拜托,我该怎么做?
发布于 2022-07-19 10:43:52
请不要使用JSONField。关系数据库仍然不能很有效地处理JSON数据。例如,它将阻止有效的更新:这里所做的是每次将整个JSON blob发送回数据库。随着JSON的增长,数据库更新一行的工作量也会随之增加。过滤、更新、删除等等都是相当有问题的。虽然在使使用JSON更加方便方面付出了很大的努力,但在关系数据库应该做的事情上,这仍然是非常“正交”的。
通常会创建一个额外的模型,因此:
class FamilyMember(models.Model):
person = models.ForeignKey(
Person,
related_name=models.CASCADE
)
name = models.CharField(max_length=128)
relationship = models.CharField(max_length=128)
occupation = models.CharField(max_length=128)在这里使用Person,您最初定义关系的模型。
然后可以添加数据,例如:
FamilyMember.objects.create(
person=my_person,
name='Brian King',
relationship='Father',
occupation='Engineer'
)https://stackoverflow.com/questions/73035193
复制相似问题