我正在使用 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,因此没有更多syncdb
或clear 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”不匹配?