繁体   English   中英

如何在 Model.py 中访问链接到另一个 model 的 model 字段?

[英]How can I access model fields linked to another model In Model.py?

我有以下 model 时间表、预订和路线价格。

时间表 Model:

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 路线 model 是。

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 与 Route Price 在一对多关系中链接。 RoutePrice Model 是一样的。

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 seat_price_for_travel_agent 我已经来到这里。 我应该如何从 Schedule 中的RoutePrice获取seat_price_for_travel_agent

def save(self, *args, **kwargs):
    seat_price_for_travel_agent = self.bus_company_route.routeprice_set

现在我不知道如何进一步进行。

我解决了!

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM