2015-01-08 30 views
0

當我第一次學習,我只是創建一個應用程序爲獲取數據庫中表示一切。它會變得非常臃腫。Django的:削減的應用程序的數量(外鍵局部類或模塊類,而不是應用程序)

舉個例子:應用汽車需要很多乘客。

在過去,我只希望創建兩個應用,汽車和旅客,將它們添加到安裝的應用程序,並且永遠不會再碰觸乘客。那麼,如果汽車有很多的領域需要跟蹤,這很快就會加起來。

我聽說最好使用模塊代替。所以在我創建modules.py,車子app文件夾,並在其中添加類乘客:

class Passenger(models.Model): 
    name = models.CharField(
     max_length=32, 
     null=False, 
     blank=True 
    ) 

    # relationships 
    car = models.ForeignKey(Car, null=False, blank=False) 

後執行syncdb,makemigrations和遷移(與反饋「沒有移民申請」)

Car.objects.all()[0].passenger_set.all() 

OperationalError:no such table:car_passenger

如何創建此表格?這是減少簡單到多個領域膨脹的良好做法嗎?這是否需要在汽車模型中定義?我需要將car.modules添加到已安裝的應用程序嗎?

謝謝!

+0

不是爲汽車和乘客創建兩個單獨的應用程序只是創建一個單一的應用程序,並在模型中創建兩個類一個是汽車,另一個是乘客。 – Gaurav

回答

0

而是創造了車客兩個獨立的應用程序只需創建一個單一的應用程序的模式,並創建兩個類一個是汽車,另一個是乘客。

,然後應用查詢

car = Car.objects.all()[0] 
pass = Passanger.objects.filter(car=car) 

嘗試這種方式。

相關問題