gpt4 book ai didi

django - 无法在 postgres 数据库中存储 python 类对象

转载 作者:行者123 更新时间:2023-11-29 13:13:58 25 4
gpt4 key购买 nike

我有一个定义如下的类

class StatementStatus:
def __init__(self, id, statement, call, intent, score):
self.id = callback_id
self.statement = statement
self.entities = entities
self.intent = intent
self.score = score

def getIntent(self):
return self.intent

def getScore(self):
return self.score

def addIntent(self, intent_val):
self.intent.append(intent_val)

现在我想将此类的实例存储到 postgres 数据库中。该文件托管在 django 服务器中,由于服务器中的某些问题,我无法使用 django 迁移。所以我需要手动执行。

下面是我的django模型

class StoreState(models.Model):
context_name = models.CharField(null=True,max_length=100)
state = models.BinaryField(null=True)

这里我想将 StatementStatus 实例存储在一个名为 state 的字段中。

同样,我的 postgres 表结构如下所示

    Column    |          Type          | Modifiers 
--------------+------------------------+-----------
id | integer |
context_name | character varying(100) |
state | bytea |

但是当我执行如下操作时,它不会将任何条目存储到表中

try:
conv = StoreState.objects.create(
context_name = callback_id,
state=s
)
except Exception as e:
print("unable to save update", e)

但它没有将任何内容存储到表中。我收到以下错误。

('unable to save update', TypeError("can't escape instance to binary",))

我做错了什么?

最佳答案

如果您想将对象保存在数据库中,请使用 pickle。

import pickle
state = pickle.dump(state) #your state object will be converted to binary

try:
conv = StoreState.objects.create(
context_name = callback_id,
state=s
)
except Exception as e:
print("unable to save update", e)

关于django - 无法在 postgres 数据库中存储 python 类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51457900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com