如何更改Django创建的数据库的列名(来自models.py)?

时间:2017-12-06 13:59:04

标签: mysql django database phpmyadmin

所以我在我的本地PHPMyAdmin中有一个MySQL数据库,其数据库和表已经填入了数据。我现在必须将该数据库移植到django中。

例如,DB中表的名称是“rating”。所以使用django,我必须首先创建一个名为something的应用程序(让我们说“网站”)然后我可以将模型评级添加到该应用程序。这会在DB中创建一个表“website_ratings”。这不是我想要的,我希望表的名称只是评级。

有没有办法完成这项工作?

2 个答案:

答案 0 :(得分:0)

您可以在模型类中设置表名和列名。这是一个例子:

class Rating(models.Model):
    field_name = models.CharField(db_column='column_name')
    # other fields

    class Meta:
        db_table = 'ratings'

这意味着您可以为每个字段指定列名称,该列名称可以与字段名称不同。在Meta类中,您可以指定表名。否则Django会自动从应用标签和模型类名称创建它。

如果它是旧数据库并且您想要创建模型类,则可以使用以下命令:

python manage.py inspectdb > models.py

通常您必须根据需要在此之后编辑文件。

答案 1 :(得分:0)

class Project(models.Model):
    name = models.CharField(db_column='column_name')
    # other fields

    class Meta:
        db_table = 'Project'

通过这种方式,您可以在mysql表名称中对其进行更改。称为“ appname_tablename”。 现在,它将仅带有您定义的表名。作为mysql中的项目。