4

我正在使用 django 和 oracle 数据库。我有一个使用 django-modeltranslation 的模型。当我为一种以上的语言添加文本时,Oracle 数据库会抛出 ORA-22284: duplicate LONG binds are not supported 错误。我该如何解决?我是 StackOverFlow 的新手。如果我的问题没有详细说明,请告诉我。

这是我的模型:

class About(models.Model):
    image = models.ImageField(upload_to='about', verbose_name=_('Image'))
    text = models.TextField(verbose_name=_("Text"))
    phone = models.CharField(max_length=50, verbose_name="Phone")
    address = models.CharField(max_length=255, verbose_name=_("Address"))

class Meta:
    verbose_name = _("About")
    verbose_name_plural = _("About")

def __str__(self):
    return str(_('About AzeriCard'))

这是translations.py

from app.models import *
from modeltranslation.translator import translator, TranslationOptions

class AboutTrans(TranslationOptions):
    fields = ('text', 'address')
4

1 回答 1

1

最近使用 Oracle 和 Django ORM,使用多个 TextField 并分配相同的值(超过 2000 个字符)。Oracle 崩溃并出现 ORA-22284 错误。

class Object(models.Model):
    text = models.TextField(verbose_name=_("Text"))
    text1 = models.TextField(verbose_name=_("Text1"))


@receiver(pre_save, sender=Object)
def add_spaces_to_textfield(sender, instance, **kwargs):
    if instance.text == instance.text1:
         instance.text1 = instance.text1 + " "

在您使用模型翻译的情况下,您可以使用字段、text、text_xx、text_yy 执行类似操作

于 2019-03-08T11:56:58.467 回答