根据你的结构和Django版本的很多,我认为你有2个选项。
南
最好的是安装应用程序“南”。我不知道你是否已经知道它,或者你正在使用它,但我认为它应该是你的第一选择。
如果你不使用它,你应该这样做的步骤:
- 与
pip install South
安装与创建第一个迁移:
python manage.py schemamigration YOURAPPNAME --initial
您需要伪造此迁移,因为你已经在fullfilled数据库,因此你需要做的:
python manage.py migrate YOURAPPNAME --fake
的新字段添加到模型事件在文件模型。PY
生成新的迁移,使南在数据库中创建新的字段:
python manage.py schemamigration YOURAPPNAME --auto
最后一步,执行与创建的迁移:
python manage.py migrate YOURAPPNAME
个
提示
--initial
对于其余
- 最初的迁移是伪造的,因为你已经拥有的表在数据库中,如果您尝试不假迁移第一个迁移
--auto
它将返回错误“表已经存在”
创新型城市
另一种选择,如果你不能改变你的实际模型,或者也许,如果它是太乱了,另一个选择是生成外耳炎模范城市是这样的:
class City(models.Model):
event_foreign = models.ForeignKey(Event)
event_many = models.ManyToManyField(Event, blank=True, null=True)
name = models.CharField....
postal_code = models.CharField....
# etc...
我不知道是至极最适合你的外键或ManyToMany取决于城市是否可以有超过1个事件或不是,这是你的选择。
当你有这样的模型时,你可以从这个城市模型访问该事件(因为ForeignKey或ManyToMany),但是这种关系也可以在另一个方向上进行,如果你有一个事件,你可以得到城市/与之相关的城市,我要告诉两个例子:使用使用多对多
外键
city = City.objects.get(id=1)
city.event # Returns event
event = Event.objects.get(id=1)
event.city # Returns city
例2
例
city = City.objects.get(id=1) city.event.all() # Returns a list of events event = Event.objects.get(id=1) event.city_set.all() # Returns a list of cities