我正在编写我的第二个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
为什么要重命名表?我不知道该在这里寻找什么。任何指导将不胜感激。
答案 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
它对我有用