【问题标题】:Django only adding one field from modelDjango 只从模型中添加一个字段
【发布时间】:2016-05-24 04:52:56
【问题描述】:

当我编辑模型以具有更多字段并进行迁移时,Django 不会在不删除旧字段的情况下添加新字段。

这是模型

class Testimonial(models.Model):
    name = models.CharField(max_length=20, null=True),
    quote = models.CharField(max_length=255, null=True),
    test = models.CharField(max_length=20, null=True)

这是我在终端中得到的

“推荐”的迁移:
0004_auto_20160212_1537.py:
- 从推荐中删除字段引用
- 将现场测试添加到推​​荐中

这是最近的迁移

from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('testimonials', '0003_auto_20160212_1536'),
    ]

    operations = [
        migrations.RemoveField(
            model_name='testimonial',
            name='quote',
        ),
        migrations.AddField(
            model_name='testimonial',
            name='test',
            field=models.CharField(max_length=20, null=True),
        ),
    ]

【问题讨论】:

  • 删除所有迁移,运行python manage.py makemigrations之后,删除你的数据库并迁移

标签: python django django-models django-migrations


【解决方案1】:

我很确定这个问题是由你为尾随字段使用的逗号引起的,在 python 中,这表明你正在创建一个元组,它将下一行视为该元组对象的延续,你需要删除它们

class Testimonial(models.Model):
    name = models.CharField(max_length=20, null=True),
    quote = models.CharField(max_length=255, null=True),
    test = models.CharField(max_length=20, null=True)

应该是

class Testimonial(models.Model):
    name = models.CharField(max_length=20, null=True)
    quote = models.CharField(max_length=255, null=True)
    test = models.CharField(max_length=20, null=True)

【讨论】:

    【解决方案2】:

    如果您不想删除“引用”——只需手动删除此迁移操作即可。

    operations = [
        migrations.AddField(
            model_name='testimonial',
            name='test',
            field=models.CharField(max_length=20, null=True),
        ),
    ]
    

    并执行:python manage.py migrate app_name。可能在创建迁移时,您不小心注释掉了该字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-20
      • 2017-01-10
      • 2020-04-20
      • 2019-01-01
      • 2017-11-02
      • 1970-01-01
      • 2017-04-22
      • 2016-05-30
      相关资源
      最近更新 更多