【问题标题】:How to update Foreign Key from another Foreign Key reference Models Django如何从另一个外键参考模型 Django 更新外键
【发布时间】:2021-05-01 03:11:24
【问题描述】:

我制作了两个具有相同外键参考模型 (usersold) 和 (currentuserbid) 到用户模型(settings.AUTH_USER_MODEL) 的模型。

我已经填写了 AuctionBids models.currentuserbid 的数据。当我尝试在 view.py 的 AuctionListing 模型中引用它并将其设置为相同的值时,它不会被保存。

我也试过了,listing.sold = User.objects.get(id=listing.bid.currentuserbid.id)

非常感谢!

Models.py

class AuctionListing(models.Model):
    title = models.CharField(max_length=64)
    description = models.TextField()
    image = models.TextField()
    bid = models.ForeignKey(AuctionBids, on_delete=models.CASCADE, related_name="auctionbidding", null=True)
    usersold = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="auctionsold",null=True)

class AuctionBids(models.Model):
    currentBid = models.IntegerField()
    currentuserbid = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,related_name="currentuserbid",null=True)

Views.py

listing = AuctionListing.objects.get(pk=id)
listing.sold = listing.bid.currentuserbid
listing.save()

【问题讨论】:

  • 您的意思是listing.usersold = listing.bid.currentuserbid?该字段名为“usersold”而不是“sold”?
  • @IainShelvington 哦,谢谢你发现我的错误,你的正确。我应该意识到这一点。这回答了我的问题

标签: python django django-models django-templates


【解决方案1】:

问题在于您引用外键的方式 为了获得与 AuctionListing 相关的出价,您可以使用:

listing = AuctionListing.objects.get(pk=id) 出价=listing.bid_set 使用本文档了解 django 中的外键引用 https://docs.djangoproject.com/en/3.2/ref/models/relations/

【讨论】:

    猜你喜欢
    • 2018-09-21
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    • 2022-12-10
    • 2021-10-11
    • 2017-08-30
    • 1970-01-01
    • 2013-01-17
    相关资源
    最近更新 更多