Tid*_*eer 5 python database django json
我有一个使用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()
Run Code Online (Sandbox Code Playgroud)
看起来挺直的..不是吗?
但是该字段没有与ip字典项一起保存...我也不知道为什么!
我做了一个可行的解决方法,但在我的代码中看起来不太好:
d = self.properties
d['ip'] = ip_address
self.properties = d
self.save()
Run Code Online (Sandbox Code Playgroud)
这样,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'}
Run Code Online (Sandbox Code Playgroud)
您可以重新创建这些步骤以达到相同的效果吗?如果是这样,则错误位于代码的其他位置。
| 归档时间: |
|
| 查看次数: |
6079 次 |
| 最近记录: |