与在Django

问题描述:

几个领域中的许多一对多的关系,我有以下型号:与在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)时,出现错误。

任何帮助或方向高度赞赏。

使用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)