我有一个继承的数据模型:
class Unit (models.Model):
Name = models.CharField(max_length=50, unique=True, default="DEFAULT VALUE")
description = models.TextField(null=True)
address1 = models.CharField(max_length=255, default="DEFAULT VALUE")
address2 = models.CharField(max_length=255, default="DEFAULT VALUE")
City = models.CharField(max_length=100, default="DEFAULT VALUE")
State = models.CharField(max_length=2, default="DEFAULT VALUE")
zip = models.IntegerField(default=0)
lat = models.DecimalField(decimal_places=9, max_digits=38, null=True)
lng = models.DecimalField(decimal_places=9, max_digits=38, null=True)
def __str__(self):
return self.Name
class Meta:
abstract = True
class Geo (Unit):
coverage = models.TextField(null=True)
def __str__(self):
return self.Name
class Ship (Unit):
HullNumber = models.TextField(null=True)
ShipClass = models.ForeignKey(ShipClass)
Origin = models.CharField(max_length=3, choices=ALLEGIENCE_CHOICES, default='FED')
Geo = models.ForeignKey(Geo)
问题是,如果我执行:
>>> models.Geo._meta.get_all_field_names()
['City', 'Name', 'State', 'address1', 'address2', 'coverage', 'crew', 'description', 'id', 'lat', 'lng', 'ship', 'zip']
但是如果我执行:
>>> models.Geo.objects.all()
我得到:
django.db.utils.OperationalError:无此类列:Fleet_geo.id
我错过了什么吗?最近两天我一直在RTFM'ing。我不知道我在想什么。有没有人可以阐明这一点?
谢谢
您的数据库似乎没有设置,或者没有更新您的模型。
如果使用django 1.7+,则必须运行迁移,以便为模型创建/修改数据库表:激活模型
python manage.py makemigrations
python manage.py migrate
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句