【问题标题】:Django says: table X has no column named Y. I disagreeDjango 说:表 X 没有名为 Y 的列。我不同意
【发布时间】:2010-07-16 22:16:54
【问题描述】:

我收到以下错误:

sqlite3.OperationalError: table gallery_image has no column named filename

这是我的模型:

from django.db import models

class Image(models.Model):
    filename= models.Field(max_length=40);
    gallery = models.ForeignKey('Gallery')
    def __unicode__(self):
        return u'%s(%s)' % (self.filename,self.gallery)

class Gallery(models.Model):
    title   = models.CharField(max_length=100)
    url     = models.CharField(max_length=50, unique=True)
    def __unicode__(self):
        return u'title: %s, url: %s' % (self.title, self.url)

这个脚本的最后一行显然有错误

from django.core.management.base import BaseCommand
from dev.gallery.models import Gallery, Image
import os

class Command(BaseCommand):
    def handle(self, *args, **options):
        importfrom='/srv/django/dev/gallery/import'
        exportto='/var/www/dev-media/'

        title=args[0]
        url=args[1]

        print(os.listdir(importfrom))

        if not len(args)==2:
            print 'wrong number of arguments'
            return ;

        #Create the gallery in the database
        g=Gallery(title=title,url=title)
        g.save();

        files=os.listdir('/srv/django/dev/gallery/import');

        for f in files:
            Image(filename=f,gallery=g).save();

如果这对你有意义,请向我解释原因:)

【问题讨论】:

    标签: database django django-models


    【解决方案1】:

    应该filenameFileField 的一个实例,而不仅仅是Field

    【讨论】:

    • 谢谢...应该是 CharField 因为我想要存储的是文件的实际名称而不是位置:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多