没有这样的表:myAppName\u us

2024-04-16 20:05:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我为扩展auth.User定义了一个模型(在名为services的应用程序中),它如下所示:

from django.contrib.auth.models import User
class Order(models.Model):
    owner = models.ForeignKey(User)

我也试过:

class Order(models.Model):
    owner = models.ForeignKey('auth.User')

然后我访问管理页面,单击Order,总是出现错误:

OperationalError 
Exception Value:
no such table: services_user

我试了manage.py syncdbmanage.py makemigrationsmanage.py migrate的所有方法,都没用。你知道吗

Django似乎仍在尝试查找自定义用户表,这是我的设置文件,它几乎是Django1.8.3中的默认文件,没有任何更改:

INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'services',
)

顺便问一下:清空数据库的最佳方法是什么?删除sqlite文件,然后在哪里恢复空的db文件?或者通过sqlshell连接到db并逐个删除表?你知道吗


Tags: 文件django方法pyauthmodelmanagemodels
1条回答
网友
1楼 · 发布于 2024-04-16 20:05:38

你需要删除数据库。这可以通过删除sqlite db文件来完成。然后再次创建空数据库。用于创建数据库的第一个安装命令行工具

sudo apt-get install sqlite3

例如,要使用一个名为“tbl1”的表创建一个名为“ex1”的新SQLite数据库,可以执行以下操作:

$ sqlite3 ex1
SQLite version 3.8.5 2014-05-29 12:36:14
Enter ".help" for usage hints.
sqlite> create table tbl1(one varchar(10), two smallint);
sqlite> insert into tbl1 values('hello!',10);
sqlite> insert into tbl1 values('goodbye', 20);
sqlite> select * from tbl1;
hello!|10
goodbye|20
sqlite>

详情请阅读this。你知道吗

您还需要清除所有迁移,然后再次使用

Python manage.py makemigrations

Python manage.py migrate

这应该能解决你的问题。你知道吗

相关问题 更多 >