Django imageField

时间:2017-02-20 11:08:55

标签: python django django-models imagefield

我正在尝试设置一个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 migrate
  4. 然后我尝试从管理员端访问Serie模型但是遇到了这个错误。

    我能做什么?

    感谢。

2 个答案:

答案 0 :(得分:0)

在您的模型中,您有一个名为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'')),
    ],

答案 1 :(得分:0)

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