【发布时间】:2023-03-23 09:32:01
【问题描述】:
这是我的三个模型:
class User(AbstractUser):
pass
class Category(models.Model):
Name = models.CharField(max_length=20)
class Listing(models.Model):
Title = models.CharField(max_length=20)
Description = models.TextField()
StartingBid = models.IntegerField()
Category = models.ManyToManyField(Category, verbose_name="Categories")
Image = models.URLField()
CurrentBid = models.IntegerField()
Author = models.ForeignKey(User, on_delete=models.CASCADE)
Close = models.BooleanField()
这是将我带到所需视图的网址:
path("<str:user>/<str:name>", views.name, name="name"),
最后是名称视图:
def name(request, user, name):
try:
l = Listing.objects.get(Title=name)
except Listing.DoesNotExist:
l = None
try:
**bid = Bid.objects.get(Bidder=user, Item=name)**
except Bid.DoesNotExist:
bid = None
if l.CurrentBid == bid.Value and l.Close:
won = True
else:
won = False
if l.Author == user:
owner = True
else:
owner = False
watchlist = Watchlist.objects.all()
if name in watchlist:
added = True
else:
added = False
return render(request, "auctions/name.html", {
"item": l,
"added": added,
"form_bid": BidForm(),
"m": "",
"owner": owner,
"comments": Comments.objects.filter(Item=name),
"won": won
})
这就是问题所在:
bid = Bid.objects.get(Bidder=user, Item=name)
错误信息:
字段 'id' 需要一个数字,但得到了 'admin'。(admin 是用户名)
我想出了问题所在,但我不知道该怎么办。 bid 类的bidder 属性是User 类的外键
有人能告诉我怎么做吗?
【问题讨论】:
标签: django django-models foreign-keys