在django的JSONfield中添加一个自动增量字段



我已经能够插入数据到我的字段是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)

请问我怎样才能完成这件事

请不要使用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'
)

最新更新