如何将字段从相关模型注释到查询集?

我有两个模型:

全部:

class Lot(models.Model):
    name = models.CharField(max_length=150,db_index=True,unique=True)
    step = models.DecimalField(max_digits=2,decimal_places=2)

和出价:

class Bid(models.Model):
    auction = models.ForeignKey('Lot',on_delete=models.CASCADE)
    user_id = models.ForeignKey(User,on_delete=models.CASCADE,to_field='username')
    value = models.DecimalField(max_digits=5,decimal_places=2)

每个Lot实例可以有几个出价,但是任何Bid实例都只与一个特定的Lot相关。

我有一个有效的Lot批注,它为我提供了max_bid和next_bid值:

self.auc_set = Lot.objects.annotate(max_bid=Max('bid__value'),next_bid=(Max('bid__value') + F('step')))

我无法实现的是获得3个带注释的字段:max_bid,next_bid和last_bidder。

类似的东西:

self.auc_set = Lot.objects.annotate(max_bid=Max('bid__value'),next_bid=(Max('bid__value') + F('step')),last_bidder=F(bid_set).get('auction_id'= F('id'),'value'=max_bid)['user_id'])

但可以。

更新: 如果我知道如何将“ id”从Lot.objects.annotate传递到Bid.objects.get部分,则将解决该问题:

auc_set = Lot.objects.annotate(last_bidder=Bid.objects.get(auction_id__exact='need_to_put_something_here',value=Max('value').user_id)
liyinjie86 回答:如何将字段从相关模型注释到查询集?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3161312.html

大家都在问