Django模型。未定义变量

Django模型。未定义变量,django,django-models,undefined,django-orm,Django,Django Models,Undefined,Django Orm,有人知道为什么itembedd_uucurrentBid被识别为未定义变量吗?我的模型是: class AuctionListing(models.Model): username = models.ForeignKey(User, on_delete=models.CASCADE, related_name="user") title = models.CharField(max_length=64) description = models.Cha

有人知道为什么
itembedd_uucurrentBid
被识别为未定义变量吗?我的模型是:

class AuctionListing(models.Model):
    username = models.ForeignKey(User, on_delete=models.CASCADE, related_name="user")
    title = models.CharField(max_length=64)
    description = models.CharField(max_length=1000)
    startingbid = models.DecimalField(max_digits=6, decimal_places=2)
    category = models.CharField(max_length=64, blank=True)
    imgurl = models.URLField(max_length=300, blank=True)
    status = models.BooleanField(default=True)

class Bid(models.Model):
    usernameb = models.ForeignKey(User, on_delete=models.CASCADE, related_name="userb")
    auctionitem = models.ForeignKey("AuctionListing", on_delete=models.CASCADE, related_name="itembided")
    currentbid = models.DecimalField(max_digits=6, decimal_places=2, default=0)
以及views.py中的代码,其中问题是:

...    
from .models import User, AuctionListing, Bid

def index(request):
    q = AuctionListing.objects.filter(status=True).annotate(max_bid=Coalesce(V(0),Max(itembided__currentbid)))
    return render(request, "auctions/index.html", {
        "q":q,
    })
有什么建议吗?我的原始出价模型没有AuctionListing参数的报价,它看起来如下:

auctionitem = models.ForeignKey(AuctionListing, on_delete=models.CASCADE, related_name="itembided")

然而,在从StackOverflow读取一个discution后,我尝试将引号添加到AuctionListing参数中。。。遗憾的是,它不起作用。

您将字段的名称作为字符串传递,现在使用的是标识符,但没有具有该名称的标识符。此外,如果存在相关的
Bid
对象,您可能希望以相反的方式使用
0
。因此,您可以将其改写为:

from django.db.models import Max, Value as V
from django.db.models.functions import Coalesce
from .models import User, AuctionListing, Bid

def index(request):
    q = AuctionListing.objects.filter(status=True).annotate(
        max_bid=Coalesce(
            Max('itembided__currentbid'),  # ← use a string
            V(0)  # ← use V(0) as second element
        )
    )
    return render(request, "auctions/index.html", {
        "q":q,
    })
从django.db.models导入最大值,值为V
从django.db.models.functions导入合并
从.models导入用户、拍卖列表、出价
def索引(请求):
q=AuctionListing.objects.filter(status=True).注释(
最大出价=合并(
Max('itembided_ucurrentbid'),#←使用字符串
V(0)#←使用V(0)作为第二个元素
)
)
返回渲染(请求“auctions/index.html”{
“q”:q,
})
Max(itembided\uu currentbid)
缺少引号。它应该是
Max(“itembided\uu currentbid”)