【发布时间】:2019-03-08 09:01:46
【问题描述】:
在我的数据库 (psql) 中,我有一个名为 offers_offer 的表,其中有一个名为 offer_name 的列,这是错误的,因为它实际上应该只是 name。我不知道为什么它有这个名字,但由于这个原因,我无法加载任何固定装置或创建新对象,因为我总是收到 name 未找到的错误(显然)。
现在我的模型看起来像这样:
class Offer(models.Model):
name = models.CharField(default="", verbose_name='Offer Name', blank=False, max_length=255)
(some other fields...)
我唯一的初始迁移如下所示:
from __future__ import unicode_literals
from django.db import migrations, models
import django.utils.timezone
class Migration(migrations.Migration):
initial = True
dependencies = [
('crm', '0007_make_gender_mandatory'),
]
operations = [
migrations.CreateModel(
name='Offer',
fields=[
('name', models.CharField(default='', max_length=255, verbose_name='Offer Name')),
(every other field...)
],
options={
(some options...)
},
),
]
所以我真的不知道为什么它在我的数据库中被命名为offer_name,而创建它是为了将name 作为字段名。
无论如何,我试图通过进行新的迁移来解决这个问题:
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('offers', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='offer',
name='offer_name',
field=models.CharField(default='', db_column=b'offer_name', max_length=255, verbose_name='Offer Name'),
),
migrations.RenameField(
model_name='offer',
old_name='offer_name',
new_name='name',
),
]
但如果我这样做了,我只会收到一个 FieldDoesNotExist 错误,告诉我django.core.exceptions.FieldDoesNotExist: Offer has no field named 'offer_name'
那么有人知道解决这个问题的好方法吗?
【问题讨论】:
标签: python django database postgresql