与在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
。对于每个passenger
,driver
可以设置每个乘客要支付的trip_cost
的百分比。
我需要的是有:
- 领域
passenger
要列出所有Users
- 几个
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)