在 create() 之前检查值是否有效
Check if values are valid before create()
您好,我正在尝试从 CSV 文件导入行,但我无法处理类型错误。
例如,如果您在日期时间字段中插入一个字符串,我会在创建时收到此错误:
psycopg2.errors.InFailedSqlTransaction: current transaction is aborted, commands ignored until end of transaction block
尽管处理错误
try:
my_module.create()
exception Except:
#stuff
pass
如何在我开始创建或至少处理错误并采取其他操作之前检查这些值。目前,如果我插入一个选择中不存在的字段,我可以使用 try catch 进行管理,但我不能用于数据类型
对于数据类型,您实际上可以。即使我不太理解您的代码,您也可以将变量显式转换为特定数据类型,然后在该特定转换失败时捕获 ValueError 异常,如下所示:
try:
int(variable)
except ValueError:
print("Variable was not an integer.")
BaseModel
上有一个方法 load(fields, data)
,您可以对其进行扩展。
class MyModel(models.Model):
# if a new model
_name = 'my.model'
# if an extended model
# _inherit = 'my.model'
def load(self, fields, data):
""" Extended to do stuff to the data before importing it to database"""
# do stuff like converting weird data input
clean_data = self.clean_data(data)
# call super with cleaned data afterwards
return super(MyClass, self).load(fields, clean_data)
您好,我正在尝试从 CSV 文件导入行,但我无法处理类型错误。 例如,如果您在日期时间字段中插入一个字符串,我会在创建时收到此错误:
psycopg2.errors.InFailedSqlTransaction: current transaction is aborted, commands ignored until end of transaction block
尽管处理错误
try:
my_module.create()
exception Except:
#stuff
pass
如何在我开始创建或至少处理错误并采取其他操作之前检查这些值。目前,如果我插入一个选择中不存在的字段,我可以使用 try catch 进行管理,但我不能用于数据类型
对于数据类型,您实际上可以。即使我不太理解您的代码,您也可以将变量显式转换为特定数据类型,然后在该特定转换失败时捕获 ValueError 异常,如下所示:
try:
int(variable)
except ValueError:
print("Variable was not an integer.")
BaseModel
上有一个方法 load(fields, data)
,您可以对其进行扩展。
class MyModel(models.Model):
# if a new model
_name = 'my.model'
# if an extended model
# _inherit = 'my.model'
def load(self, fields, data):
""" Extended to do stuff to the data before importing it to database"""
# do stuff like converting weird data input
clean_data = self.clean_data(data)
# call super with cleaned data afterwards
return super(MyClass, self).load(fields, clean_data)