2017-10-07 50 views
2

幾個領域中的許多一對多的關係,我有以下型號:與在Django

class Trip(models.Model): 
    driver = models.ForeignKey(User) 
    trip_cost = models.IntegerField(blank=True, null=True) 
    passenger = models.CharField(max_length=50, blank=True, null=True) 
    shared_cost = models.IntegerField(default=0, blank=True, null=True) 

每個Trip可以有一個driver單獨,或與幾個passenger一個driver。對於每個passengerdriver可以設置每個乘客要支付的trip_cost的百分比。

我需要的是有:

  1. 領域passenger要列出所有Users
  2. 幾個passenger + shared_cost每個Trip

我想我應該使用多對多,但我不能使它的工作。另外,當我嘗試將乘客設置爲models.ForeignKey(User)時,出現錯誤。

任何幫助或方向高度讚賞。

回答

1

使用related_name時指的是使用2個字段的相同模型。

class Trip(models.Model): 
    driver = models.ForeignKey(User,on_delete=models.CASCADE, related_name='driver') 
    trip_cost = models.IntegerField(blank=True, null=True) 
    passenger = models.ForeignKey(User,on_delete=models.CASCADE, related_name='passenger') 
    shared_cost = models.IntegerField(default=0, blank=True, null=True)