我想从表名中删除app标签,因此我有一个非常简单的Web应用程序。
我正在使用以下模型:
class Gender(models.Model):
name = models.CharField(max_length=20)
class Meta:
db_table = 'gender'
结果并不像预期的那样:
>>> Gender.objects.all()
ProgrammingError: (1146, "Table 'project.gender' doesn't exist")
为什么元选项不起作用?
我正在使用Django 1.6.2
答案 0 :(得分:2)
db_table
选项为用户提供了指定数据库表名的灵活性。
从错误看,数据库中不存在表gender
。这意味着在指定此选项后,您尚未执行syncdb
。请执行syncdb
或者如果您使用的是南schemamigration
。
答案 1 :(得分:0)
如果您要使用这样的方式更改型号名称,我会提供解决方案。
class Gender(models.Model):
name = models.CharField(max_length=20)
class Meta:
db_table = 'gender'
之后,您必须再次迁移模型
python manage.py makemigrations
python manage.py migrate