根據你的結構和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