应用程序名称附加到 django 中的表名称

Posted

技术标签:

【中文标题】应用程序名称附加到 django 中的表名称【英文标题】:app name is appended to the table name in django 【发布时间】:2017-11-17 16:34:58 【问题描述】:

当我尝试从表中获取数据时,应用程序名称会附加到表名称并显示错误。以下是我的代码。

from models import open_cart

class test(APIView):

  def get(self,request,format=None):
    values = open_cart.objects.get()

我在 installed_apps 中定义的应用名称是“MyApp”。我的表名称是“open_cart”。查询中的表名称为 MyApp_open_cart 而不是 open_cart。 我收到的错误消息是 relation "untitled_open_cart" 不存在

【问题讨论】:

发布您的模型以及设置文件 【参考方案1】:

将应用程序名称附加到表名称是 Django 中的默认行为。如果您想使用自定义表名,请将其添加到Meta class。

class MyModel(models.Model):
    class Meta(CommonInfo.Meta):
        db_table = 'student_info'

请参阅official Django Model Meta options documentation 了解更多信息。

【讨论】:

【参考方案2】:

Django 默认在模型名称前附加应用名称。如果我们想使用我们的自定义表名,那么它必须在 Meta 类中提及。

class Open_cart(models.Model):
    class Meta:
        db_table = 'open_cart'

【讨论】:

以上是关于应用程序名称附加到 django 中的表名称的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 django 在 mysql 中的两个不同模式中使用两个具有相同名称的表

我如何在字典中附加一个数组(名称),并在 plist 中的同一数组下附加一个字典项?

如何创建一个名称取自 PostgreSQL 中的字符串的表?

Django 应用程序:必须将图像上传到的目录名称,应自动填充

将名称附加或粘贴到 R 中的列名称

Snowflake - 创建名称中带有日期变量的表