【问题标题】:Django imageFieldDjango 图像字段
【发布时间】:2017-07-09 15:18:14
【问题描述】:

我正在尝试设置一个 imageField 以在管理页面上上传图像,但出现此错误。

没有这样的专栏:series_serie.serie_cover

这是模型:

class Serie (models.Model):
    serie_name = models.CharField(max_length=100)
    serie_cover = models.ImageField(upload_to='/')

    def __str__(self):
        return (self.serie_name)

这是迁移文件:

        migrations.CreateModel(
        name='Serie',
        fields=[
            ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
            ('serie_name', models.CharField(max_length=100)),
            ('serie_cover', models.ImageField(upload_to=b'')),
        ],

我做了以下:

  1. python manage.py flush
  2. python manage.py makemigrations
  3. python manage.py 迁移

然后我尝试从管理员端访问 Serie 模型,但出现了错误。

我能做什么?

谢谢。

【问题讨论】:

  • series 应用是否已添加到 INSTALLED_APPS 设置中?
  • 是的,它已添加到 INSTALLED_APPS。

标签: python django django-models imagefield


【解决方案1】:

在您的模型中,您有一个名为 serie_image 的字段,但在您的迁移中,您正尝试将该行应用到名称为 serie_cover 的表中。这行不通。

您可以更改模型上的名称以匹配您尝试应用的迁移,也可以更改迁移以匹配模型。

像这样:

class Serie (models.Model):
    serie_name = models.CharField(max_length=100)
    serie_cover = models.ImageField(upload_to='/')

    def __str__(self):
        return (self.serie_name)

 migrations.CreateModel(
    name='Serie',
    fields=[
        ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
        ('serie_name', models.CharField(max_length=100)),
        ('serie_cover', models.ImageField(upload_to=b'')),
    ],

或者这个:

class Serie (models.Model):
    serie_name = models.CharField(max_length=100)
    serie_image = models.ImageField(upload_to='/')

    def __str__(self):
        return (self.serie_name)

 migrations.CreateModel(
    name='Serie',
    fields=[
        ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
        ('serie_name', models.CharField(max_length=100)),
        ('serie_image', models.ImageField(upload_to=b'')),
    ],

【讨论】:

  • 你能提供你的 admin.py 文件的适当部分吗?起初我没有注意到这是管理员的问题,而不是迁移。
【解决方案2】:

我解决了它删除文件'db.sqlite3'并使用makemigrations重新生成它。由于某种原因,名称卡在那里,我无法更改它。

【讨论】:

    猜你喜欢
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 2017-08-18
    相关资源
    最近更新 更多