0

我正在使用 Django 1.9+ Photologue 3.x 来构建照片库网络应用程序。

当我尝试添加照片或画廊时,它会返回'NO SUCH COLUMN EXCEPTION'

Request Method: GET
Request URL:    http://127.0.0.1:8000/admin/photologue/gallery/
Django Version: 1.9.5
Exception Type: OperationalError
Exception Value:    
no such column: photologue_gallery.slug
Exception Location: //anaconda/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py in execute, line 323
Python Executable:  //anaconda/bin/python
Python Version: 2.7.12

然后我检查了模型文件和视图文件。

model.py

@python_2_unicode_compatible
class Gallery(models.Model):
    date_added = models.DateTimeField(_('date published'),
                                      default=now)
    title = models.CharField(_('title'),
                             max_length=250,
                             unique=True)
    slug = models.SlugField(_('title slug'),
                            unique=True,
                            max_length=250,
                            help_text=_('A "slug" is a unique URL-friendly title for an object.'))
    description = models.TextField(_('description'),
                               blank=True)
    is_public = models.BooleanField(_('is public'),
                                default=True,
                                help_text=_('Public galleries will be displayed '
                                            'in the default views.'))
    photos = SortedManyToManyField('photologue.Photo',
                               related_name='galleries',
                               verbose_name=_('photos'),
                               blank=True)
    sites = models.ManyToManyField(Site, verbose_name=_(u'sites'),
                               blank=True)

    objects = GalleryQuerySet.as_manager()

似乎是对的。由于它是 Django 1.9,因此没有更多syncdbclear sql methods可用。我尝试了 migrate/makemigrations、sqlmigrates 并且它们都不起作用。

我的想法是重建 sql 表,但如何实现这一点,或任何其他方法来解决这个问题?

谢谢你。

EDIT1:尝试flush命令刷新数据库中的数据,但仍然无法正常工作。

EDIT2:尝试inspectdb了命令,得到了

class PhotologueGallery(models.Model):
    id = models.IntegerField(primary_key=True)  # AutoField?
    date_added = models.DateTimeField()
    title = models.CharField(unique=True, max_length=100)
    title_slug = models.CharField(unique=True, max_length=50)
    description = models.TextField()
    is_public = models.BooleanField()
    tags = models.CharField(max_length=255)

    class Meta:
        managed = False
        db_table = 'photologue_gallery'

这是否意味着模型中的“slug”字段与数据库中的实际字段“title_slug”不匹配?

4

2 回答 2

0

尽管syncdb命令已从 Django 1.9 中删除

python manage.py migrate appname --run-syncdb命令。

将模型与数据库同步。

于 2016-08-24T02:44:34.530 回答
0

你说 Django 迁移系统——“python manage.py migrate”不起作用。发生什么了?您收到错误消息吗?

于 2016-08-24T17:02:22.193 回答