Django:ORA:01461:只能绑定一个 LONG 值以插入到一个 LONG 列

Django: ORA:01461: can bind a LONG value only for insert into a LONG column

Django 版本 1.9.6。 Python版本:3.4.3

我在我的模型中创建了一个二进制字段 (flal_file = models.BinaryField()),用于在数据库中插入二进制数据。

数据库列是 blob 字段。

创建对象(插入)时出现该错误。

注释掉 flal_file 可防止此错误。

我不知道为什么会出现此错误,因为这是一个二进制字段。

这是旧版 Django 的错误吗?谁能帮我调试这个问题?

myfile = request.FILES['uploaded_file'] 
b = DocFileAllocation.objects.using('db_test_').create(
                   flal_file=myfile.read(), #binary data
                   flal_id_no=seq_doc_file, 
                   bmeta_id_no=seq_metadata,
                   flal_file_subject=subject,
                   )

b.save(using='db_test_')

通过数据库触发器添加主键解决了问题。在模型中它应该是 AutoField.

另外在保存对象时指定 update_fields 以避免主键问题。