в моей базе данных (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'
Так кто-нибудь знает хороший способ это исправить?