我已经针对此错误搜索了每个Stack Overflow问题,但没有一个回复有帮助。我在尝试访问此特定模型的管理页面时遇到此错误(AgentBasicInfo)。
'manage.py makemigrations'工作正常。 'manage.py migrate'也运行正常。 'manage.py runserver'工作正常,整个网站运行正常,直到我尝试进入此模型的管理页面。
该应用已正确安装在settings.py的INSTALLED_APPS中。我正在使用Postgres作为数据库。
我试过......
这个模型(见下面的代码)非常基础。我的项目中还有其他几个模型,它们在管理员中运行得很好,但只是这个特定的模型不起作用。
models.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
settings.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)
答案 0 :(得分:1)
打开db命令行。
python manage.py dbshell
试试这个
delete from django_migrations where app='app_name';
然后删除迁移文件并运行迁移命令。
答案 1 :(得分: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 存储库的人有所帮助。我欢迎任何更正。