没有这样的表[appname] _userprofile

时间:2016-03-07 21:59:24

标签: django

我正在编写我的第二个Django应用程序。我目前有一张桌子,我对我看到的错误感到困惑。假设我的应用名为“genericapplication”。

我有一个名为UserProfile的表,它扩展了Django用户默认表。

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    picture = models.ImageField(upload_to='profile_images', blank=True)
    city = models.CharField(max_length = 20)

到目前为止一切顺利。

但出于某种原因,Django似乎在为表添加额外的命名空间。我收到以下错误:

“没有这样的表:genericapplication_userprofile”

当我尝试在管理员中编辑表格时,收到以下错误消息:

/ admin / genericapplication / userprofile /中的OperationalError 没有这样的表:genericapplication_userprofile

这是我的文件结构:

/genericapplication
   manage.py
   db.sqlite3
   /genericapplication
     /static
     /templates
     __init.__py
     forms.py
     models.py
     settings.py
     urls.py
     views.py
     wsgi.py

为什么要重命名表?我不知道该在这里寻找什么。任何指导将不胜感激。

3 个答案:

答案 0 :(得分:2)

默认情况下,Django使用{ "content": "helloworld" } 作为数据库表的名称。您可以使用<appname>_<tablename>设置覆盖表名称。有关详细信息,请see the docs

如果你收到“没有这样的表”错误,那么听起来你需要为你的app创建一个迁移,然后运行它。

答案 1 :(得分:0)

我不知道为什么会这样,但运行manage.py makemigrations就可以了。 makemigrations本身没有发现变化。

答案 2 :(得分:0)

你试过吗

python ./manage.py migrate --fake-initial

它对我有用