我正在使用DJango(版本2.0.6)和postgres(版本9.6)。我有一个表sp_users。该模型具有以下字段:
{ “ name”:“ abc”, “年龄”:30岁, “ gender”:“ male”, “地址”:{ “ city”:“ Gotham”, “ state”:“ xyz”, “ country”:“ mno” } }
我正在尝试使用以下代码根据城市过滤表sp_users:
SpUsers.objects.filter(address__city ='Gotham')
此处SpUsers是映射到上表的模型。我收到以下错误:
不支持JSONField的查找'city'或不允许在字段上加入。
在模型中,我定义的地址字段如下:
address = JSONField(null = True,空白= False,默认= dict)
我在这里想念什么?如何解决这个问题?我可以根据姓名或年龄等字段进行过滤。
模型代码如下:
class SpUsers(models.Model):
user_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=255, blank=False)
age = models.IntegerField(default=0)
gender = models.CharField(max_length=255, blank=False)
address = JSONField(null=True, blank=False, default=dict)
def __str__(self):
return self.user_id
class Meta:
db_table = 'sp_users'