代码之家  ›  专栏  ›  技术社区  ›  ayaz

django:覆盖autofield的详细名称,而不删除模型

  •  3
  • ayaz  · 技术社区  · 16 年前

    我正在使用 0.97-PRE-SVN-未知 释放Django。

    我有一个模型,我没有给出任何主密钥。因此,Django会自动提供一个称为“id”的自动字段。一切都很好。但是现在,我必须将自动字段的“详细名称”更改为“id”以外的其他名称。我不能用通常的方法覆盖“id”字段,因为这需要删除/重置整个模型及其数据(严格来说这不是一个选项)。我找不到另一种方法。我想达到的目标是否可能?如果你能提出任何替代方案,让我不必放弃模型/桌子就可以得到我想要的东西,我会很高兴的。

    多谢。

    2 回复  |  直到 16 年前
        1
  •  4
  •   Alex Koshelev    16 年前

    隐马尔可夫模型。。。那么显式地写呢 身份证件 模型定义中的字段?例如:

    class Entry(models.Model):
       id = models.AutoField(verbose_name="custom name")
       # and other fields...
    

    它不需要任何基础数据库更改。

        2
  •  2
  •   Justin Voss    16 年前

    查看命令行选项 manage.py ;有一个命令将所有模型数据转储到JSON,还有另一个命令将其从JSON加载回来。您可以导出所有模型数据,将新字段添加到模型中,然后将数据导入回。只需确保设置 db_column 选择权 'id' 这样就不会破坏现有的数据。

    编辑 :具体来说,您需要命令 dumpdata loaddata .