加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – django jsonfield保存到数据库

发布时间:2020-12-20 13:36:47 所属栏目:Python 来源:网络整理
导读:我有一个使用JsonField字段的Django模型. 在某些时候,我使用IP地址更新字段,并保存该字段: class Agent(models.Model): properties = jsonfield.JSONField(default = {})def save_ip_address(self,ip_address): self.properties['ip'] = ip_address self.sa
我有一个使用JsonField字段的Django模型.

在某些时候,我使用IP地址更新字段,并保存该字段:

class Agent(models.Model):
    properties = jsonfield.JSONField(default = {})

def save_ip_address(self,ip_address):
    self.properties['ip'] = ip_address
    self.save()

看起来很直接..不是吗?

但是这个字段没有用ip字典项保存……我不明白为什么!

我做了一个有效的解决方法,但在我的代码中效果不佳:

d = self.properties
d['ip'] = ip_address
self.properties = d 
self.save()

这样,JsonField确实被保存在具有IP地址的数据库中.

有谁知道为什么第一种方法不起作用?我该怎么做才能解决这个问题?

谢谢!

解决方法

当我尝试时,你的例子对我来说很好.你能详细说明你的意思是什么没被保存?澄清我在控制台测试.用你的模型创建了一个应用程序,打开django控制台并运行:

>>> from test_app.models import Agent
>>> a = Agent()
>>> a.properties = {"host": "test"}
>>> a.save()
>>> a.properties
{'host': 'test'}
>>> a.save_ip_address("127.0.0.1")
>>> a.properties
{'ip': '127.0.0.1','host': 'test'}

你可以重新创建这些步骤以达到同样的效果吗?如果是这样,bug就会出现在代码的其他地方.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读