【发布时间】:2016-06-05 22:19:13
【问题描述】:
为了改进我的代码和数据库,我需要将模型中的字段名称更改为远离令人困惑且接近保留字的值。
原来的模型实际上是这样的:
class Company(models.Model):
my_old_name = models.CharField(max_length=100, db_index=True)
新模型实际上是这样的:
class Company(models.Model):
my_new_name = models.CharField(max_length=100, db_index=True)
我跑了:
python manage.py makemigrations my_app
迁移代码是这样的:
class Migration(migrations.Migration):
dependencies = [
('my_app', '0004_auto_20160605_1852'),
]
operations = [
migrations.RenameField(
model_name='company',
old_name='my_old_name',
new_name='my_new_name',
),
]
然后我执行了:
python manage.py migrate
网站运行良好。所有页面都会显示并根据需要使用“new_name”。但是,我不能使用管理站点来管理数据库。它抛出错误:
Error during template rendering
In template /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/s... error at line 91
'Company' object has no attribute 'my_old_name'
我已经有一段时间没有运气了。任何帮助将不胜感激。
作为第一个建议的补充,这是 admin.py 的内容:
from django.contrib import admin
from .models import Company, Parameters
admin.site.register(Company)
admin.site.register(Parameters)
它不包含“my_old_name”...
【问题讨论】:
-
你修改了你的 admin.py 吗?如果是,你应该放在那个问题页面上。
标签: django django-admin