我有以下模型时间表、预订和路线价格。
计划模型:
class Schedule(BaseModel):
bus_company_route = models.ForeignKey(BusCompanyRoute, on_delete=models.PROTECT)
bus = models.ForeignKey(Bus, on_delete=models.PROTECT)
travel_date_time = models.DateTimeField()
seat_discounted_price_for_travel_agent = AmountField(null=True, blank=True)
seat_discounted_price_for_user = AmountField(null=True, blank=True)
seat_discounted_price_for_foreigner = AmountField(null=True, blank=True)
representative_name = models.CharField(
max_length=20,
null=True,
blank=True
)
seat_price_for_travel_agent = AmountField(null=True, blank=True)
seat_price_for_user = AmountField(null=True, blank=True)
seat_price_for_foreigner = AmountField(null=True, blank=True)
并且时间表以多对一的关系链接到 BusCompany 路线。 所以 BusCompany 路线模型是。
class BusCompanyRoute(BaseModel):
route = models.ForeignKey(Route, on_delete=models.PROTECT)
shift = models.ForeignKey(
Shift,
null=True,
blank=True,
on_delete=models.PROTECT
)
journey_length = models.TimeField(null=True)
bus_company = models.ForeignKey(BusCompany, on_delete=models.PROTECT)
和 BusCompanyRoute 以一对多的关系与路线价格相关联。 RoutePrice 模型为。
class RoutePrice(BaseModel):
bus_company_route = models.ForeignKey(BusCompanyRoute, on_delete=models.PROTECT)
bus_type = models.ForeignKey(Category, on_delete=models.PROTECT)
seat_price_for_travel_agent = AmountField(null=True)
seat_price_for_user = AmountField(null=True)
seat_price_for_foreigner = AmountField(null=True, blank=True)
现在我想从 seat_price_for_travel_agent
模型中获得 RoutePrice
计划'save method()' 我来到这里。我如何从 Schedule 中的 seat_price_for_travel_agent
获得 RoutePrice
?
def save(self, *args, **kwargs):
seat_price_for_travel_agent = self.bus_company_route.routeprice_set
现在我不知道如何进一步。
答案 0 :(得分:0)
我解决了!
def save(self, *args, **kwargs):
self.seat_price_for_travel_agent = self.bus_company_route.routeprice_set.get(). \
seat_price_for_travel_agent
self.seat_price_for_user = self.bus_company_route.routeprice_set.get().seat_price_for_user
self.seat_price_for_foreigner = self.bus_company_route.routeprice_set.get(). \
seat_price_for_foreigner
super(Schedule, self).save(*args, **kwargs)