Django 图像字段

Django imageField

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

no such column: 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. pythonmanage.py齐平
  2. python manage.py makemigrations
  3. python manage.py 迁移

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

我能做什么?

谢谢。

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

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

像这样:

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'')),
    ],

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