6

我已经搜索了有关此错误的每个 Stack Overflow 问题,但没有任何回复有帮助。尝试访问此特定模型 (AgentBasicInfo) 的管理页面时出现此错误。

“manage.py makemigrations”工作正常。“manage.py migrate”也可以正常工作。'manage.py runserver' 工作正常,整个网站工作正常,直到我尝试进入该模型的管理页面。

该应用程序已正确安装在 settings.py 的 INSTALLED_APPS 中。我正在为数据库使用 Postgres。

我努力了...

  1. 删除迁移并重新运行 makemigrations/migrate
  2. 删除此应用的整个迁移文件夹并重新运行 makemigrations/migrate
  3. 从我的所有应用程序中删除所有迁移并重新运行 makemigrations/migrate
  4. 我试过运行“manage.py migrate”和“mangae.py migrate app_name”。我仍然得到同样的错误。

这个模型(见下面的代码)是非常基本的。我的项目中有几个其他模型,它们在管理员中工作得很好,但只是这个特定的模型不起作用。

模型.py

class AgentBasicInfo(models.Model):

    preferred_email = models.EmailField()
    office_phone_number = models.IntegerField()
    brokerage_of_agent = models.CharField(max_length=50)
    agent_title = models.CharField(max_length=20)

    def __str__(self):
        return self.preferred_email

设置.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'lagger123',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

错误图片供参考

0001_initial.py

from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='AgentBasicInfo',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('preferred_email', models.EmailField(max_length=254)),
                ('office_phone_number', models.IntegerField()),
                ('brokerage_of_agent', models.CharField(max_length=50)),
                ('agent_title', models.CharField(max_length=20)),
            ],
        ),
    ]

manage.py showmigrations 的输出:

accounts
 [X] 0001_initial
admin
 [X] 0001_initial
 [X] 0002_logentry_remove_auto_add
auth
 [X] 0001_initial
 [X] 0002_alter_permission_name_max_length
 [X] 0003_alter_user_email_max_length
 [X] 0004_alter_user_username_opts
 [X] 0005_alter_user_last_login_null
 [X] 0006_require_contenttypes_0002
 [X] 0007_alter_validators_add_error_messages
 [X] 0008_alter_user_username_max_length
contenttypes
 [X] 0001_initial
 [X] 0002_remove_content_type_name
coresite
 (no migrations)
databases
 (no migrations)
manage_listings
 [X] 0001_initial
search_listings
 (no migrations)
sessions
 [X] 0001_initial
teams
 (no migrations)
4

2 回答 2

1

打开数据库命令行。

python manage.py dbshell

试试这个

delete from django_migrations where app='app_name';

然后删除迁移文件并运行迁移命令。

于 2017-11-01T14:32:56.010 回答
0

我也有这个问题并尝试过:

python manage.py dbshell

但后来我得到了这个错误:

CommandError: You appear not to have the 'psql' program installed or on your path.

这是由于 windows 在我的环境路径中找不到 psql。作为替代方案,您可以通过还原更改来完成它(也就是说,如果您在 git 存储库中有以前的更改。

对我来说,我使用了这种方法:

git checkout <commit hash> (which did not have the error)

之后拉动更改:

git pull <remote> <branch>

然后最后:

git push origin main

希望这对拥有 git 存储库的人有所帮助。我欢迎任何更正。

于 2021-01-28T21:00:35.410 回答