Python “Django图像上传”;没有这样的专栏……”;

Python “Django图像上传”;没有这样的专栏……”;,python,django,Python,Django,模型被干净地上传到数据库,所有内容都正确地显示在管理页面上。当我试图上传一张图片时,它看起来好像能正常工作。“管理”页面返回到“产品”索引,但当我单击产品名称查看其信息和图像时,出现以下错误: "no such column: polls_image.product_image_id" models.py class Product(models.Model): product_name = models.CharField(max_length=200) product_de

模型被干净地上传到数据库,所有内容都正确地显示在管理页面上。当我试图上传一张图片时,它看起来好像能正常工作。“管理”页面返回到“产品”索引,但当我单击产品名称查看其信息和图像时,出现以下错误:

"no such column: polls_image.product_image_id"
models.py

class Product(models.Model):
    product_name = models.CharField(max_length=200)
    product_description = models.TextField()
    def __unicode__(self):
        return self.product_name

class Image(models.Model):
    product_image = models.ForeignKey(Product)
    image = models.ImageField(upload_to='/')
管理员

class InlineImage(admin.TabularInline):
    model = Image

class ProductAdmin(admin.ModelAdmin):
    inlines = [InlineImage]
设置.py

MEDIA_ROOT = '/'
MEDIA_URL = '/'

我目前正处于学习阶段,为了简单起见,我只想将文件上载到项目的根目录。

我在代码中的任何地方都没有看到
product\u image\u id
属性。您的数据库表
polls\u image
是否实际有一个名为
product\u image\u id
的列?如果使用
syncdb
创建表,django应该以这种方式命名列。如果您手动创建了数据库,则可能会错过该选项。Django在ForeignKey列名后面附加了
\u id
。我使用了syncdb,但对我来说,这是令人困惑的部分。我从未创建过产品\图像\ id,也从未要求创建它。所以,我猜syncdb由于某种原因没有正常工作。正如Danos2000所说:您的模型字段product_映像将创建为product_image_id。这是django约定。你的桌子结构是什么样的?产品图片id是否确实存在?到目前为止,你还没有回答这个问题。顺便说一句:你应该简单地给这个专栏命名为product,因为它是与产品的关系,而不是与产品形象的关系。不,它不在那里,我一直在摆弄我的模型,并多次运行syncdb。我猜它只是有点困惑,因为我刚刚删除了我的数据库,重新同步了它,它解决了这个问题。