Django模型生成表名错误

2024-04-28 04:10:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我在aws自由层上有一个postgresqlrds实例和我的ec2实例。我应该使用EB,但直到我有了很多东西才真正了解它,并且对重新开始一个新的ami并不兴奋。我正在尝试建立我与数据库的第一次交互,在那里有一个名为server_config的表,创建为:

CREATE TABLE SERVER_CONFIGS
(
  config_key VARCHAR(63) NOT NULL,
  config_value VARCHAR(63) NOT NULL,
  UNIQUE (config_key)
);
INSERT INTO SERVER_CONFIGS (config_key,config_value) 
  VALUES ('ClientMustVerify','TRUE');
INSERT INTO SERVER_CONFIGS (config_key,config_value) 
  VALUES ('Auditing','FALSE');
COMMIT;

在我的django应用程序中,我有: 模型.py公司名称:

^{pr2}$

节选视图.py公司名称:

from limbo.models import serverConfig
def editServer(request):
    myConfigs = serverConfig.objects.all()
    configHtml = ""
    # for item in myConfigs #serverConfig.objects.values()
    #   configHtml += item.config_key + "\t" + item.config_value + "\n"

    if request.method == 'POST':
        form = serverForm(request.POST)
        if form.is_valid():
            integer = form.cleaned_data['int_field']
            request.session['integer'] = integer

            # call out to limboLogic.py to update values, add them to the session
            message = 'The value \'' + str(integer) + '\' has been updated.'
            return render(request, 'limboHtml/ServerConfiguration.html', {'form': form, 'SubmitMessage': message, 'CurrentConfigs': myConfigs})
        else:
            message = 'The server configuration has NOT been updated.' + '\n'
            message += ', '.join("%s=%r" % (key,val) for (key,val) in form.errors.iteritems()) + '\n' 
            # message += ', '.join("%s=%r" % (key,val) for (key,val) in form.non_field_errors.iteritems()) + '\n' 
            return render(request, 'limboHtml/ServerConfiguration.html', {'form': form, 'SubmitMessage': message, 'CurrentConfigs': myConfigs})
    # if a GET (or any other method) we'll create a blank form
    try:
        del request.session['integer']
    except KeyError:
        pass
    form = serverForm()
    return render(request, 'limboHtml/ServerConfiguration.html', {'form': form, 'SubmitMessage': '', 'CurrentConfigs': myConfigs})

错误消息:

File "/home/ec2-user/limbo/limboenv/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute return self.cursor.execute(sql, params) ProgrammingError: relation "limbo_serverconfig" does not exist LINE 1: ...ig_key", "limbo_serverconfig"."config_value" FROM "limbo_ser...

为什么在表的开头加上limbo_u?有什么办法我能改变吗?我应该只使用我的应用程序名称(还是我的项目名称?他们被称为同一件事…愚蠢的民意测验教程)在表格中?在

ec2上的linuxami上的django1.10和python2.7


Tags: keyinpyformconfigmessagereturnserver
1条回答
网友
1楼 · 发布于 2024-04-28 04:10:59

Django为每个模型创建一个表。表的默认名称是app_name + '_' + model_name。如果不想将其作为表的名称,可以通过在模型的元类中指定db_table来覆盖它

参考号:https://docs.djangoproject.com/en/1.10/ref/models/options/#db-table

建议

请不要使用与项目同名的应用程序来编写应用程序逻辑。该应用程序应始终只包含项目设置

相关问题 更多 >