如何更正以下属性错误?

时间:2014-09-21 23:29:17

标签: django python-2.7 oracle11g

我是Django的新手,我不知道如何解决这个问题。

上下文:

  • 1.- Django with oracle 11g。
  • 2.- in cmd python manage.py syncdb
  • 3.-消息错误是:

我使用'attributeError'阅读了另一个'lower',但我找不到'nltk.pos_tag(clean)'Python AttributeError: 'tuple' object has no attribute 'lower'

的存档

我的models.py是一个普通模型,错误在驱动程序中(我想是这样)。在Django的官方网站上,我看到我们在oracle(单引号)中使用它:

(例如)

*class Meta:
    db_table ='"desactivacion_empresa"',* 

File "C:\Python27\lib\site-packages\django\db\backends\oracle\
introspection.py", line 64, in table_name_converter
return name.lower()

内省的第64行是:

*def table_name_converter(self, name):
    "Table name comparison is case insensitive under Oracle"
    return name.lower()*

真的,我不知道该怎么做......


EDIT 一个完整的模型,例如:

class desactivacion_empresa(models.Model):
    id_desactivacion = models.AutoField(primary_key = True)
    empresa_involucrada = models.ForeignKey(empresa_contacto)
    fecha_desactivacion = models.DateTimeField(
        auto_now = True,
        blank = False,
        null = False
    )
    fecha_activacion = models.DateTimeField(
        blank = False,
        null = True
    )
    motivo_desactivacion = models.TextField(
        blank = False,
        null = False
    )
    class Meta:
        db_table ='"desactivacion_empresa"',
        verbose_name = 'Desactivación de empresa',
        verbose_name_plural = 'Desactivaciones de las empresas'

    def __unicode__(self):
        return self.fecha_desactivacion

1 个答案:

答案 0 :(得分:0)

您似乎在,属性后有一个迷路db_table。将其更改为

class Meta:
    db_table = "desactivacion_empresa" 
    #                                 ^ remove the stray ,

另外,摆脱额外的报价。

,使字符串被解释为元组

演示

>>> x = "a",
>>> type(x)
<type 'tuple'>
>>> y = "a"
>>> type(a)
<type 'int'>
>>> 

编辑:

根据您的修改,只需将您的班级Meta更改为

class Meta:
    db_table = "desactivacion_empresa"
    verbose_name = 'Desactivación de empresa'
    verbose_name_plural = 'Desactivaciones de las empresas'