我正在尝试从添加到Django项目中的sqlite数据库读取值,但是它不起作用。 我在Python Shell中进行了测试,当我尝试查看数据时,返回的只是以下错误:
from myapp.models import my_data
my_data.objects.all()
OperationalError:没有这样的列:my_table_name.id
这是我的models.py文件的外观:
class my_data(models.Model):
status = models.TextField(db_column='STATUS', blank=True, null=True)
name_1 = models.TextField(db_column='NAME_1', blank=True, null=True)
name_2 = models.TextField(db_column='NAME_2', blank=True, null=True)
dep = models.IntegerField(db_column='DEP', blank=True, null=True)
name_reg = models.TextField(db_column='NAME_REG', blank=True, null=True)
reg = models.IntegerField(db_column='REG', blank=True, null=True)
name_com = models.TextField(db_column='NAME_COM', blank=True, null=True)
avgp = models.IntegerField(db_column='AVGP', blank=True, null=True)
class Meta:
managed = True
db_table = 'my_table_name'
我的settings.py文件:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
},
'my_table_name': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db_my_table_name.sqlite3'),
}
}
我还执行了python manage.py makemigrations
和python manage.py migrate
命令。
知道我在做什么错吗?
答案 0 :(得分:1)
我根据您的评论写这篇文章,因为您说它可行:
向my_data
模型添加ID字段:
AutoField like: id = models.AutoField(primary_key=True)
提示:在Django中,模型名称应遵循CamelCase约定。
答案 1 :(得分:0)
之前我遇到了同样的问题,然后我将下面的代码用于我的 models.py 文件,这已经解决了问题
class ModelName(models.Model):
id = models.AutoField(primary_key=True)
这可以帮助您解决上述问题