python - 获取模型的 __str__ 中相关对象的列表
问题描述
我有两个具有一对多关系的模型;上市和投标。是否可以在 Listing 的 str 方法中检索并显示 Bid 对象的 bid_price 列表?
下面提供的代码使服务器崩溃,我不确定要搜索的正确关键字。
我了解listing.bid_set 在Shell 或视图中的工作原理,但我不确定如何让它在这里工作。
class Listing(models.Model):
title = models.CharField(max_length=64)
def __str__(self):
bid_objects = Bid.objects.all().filter(listing__id=self.id)
price_list = []
for bid_object in bid_objects:
price_list.append(bid_object.bid_price)
return f"{self.title}, {price_list}"
class Bid(models.Model):
listing = models.ForeignKey(Listing, on_delete=models.CASCADE, related_name="listing_bids")
bid_price = models.DecimalField(max_digits=6, decimal_places=2)
谢谢你的帮助。
解决方案
由于您指定related_name='listing_bids'
,这意味着您可以使用以下方式访问相关Bid
的 s self.listing_bids
:
class Listing(models.Model):
title = models.CharField(max_length=64)
def __str__(self):
bid_objects = self.listing_bids.values_list('bid_price', flat=True)
return f'{self.title}, {bid_objects}'
推荐阅读
- reactjs - 在 React select 中使用枚举
- javascript - 如何在 Javascript 中创建准确的 setTimeout(不是间隔)?
- c# - Odata 不支持“GroupBy”方法
- c++ - 无效函数使用相同的变量打印两个不同的答案
- swift - 带有持续时间的循环动画,Swift 4
- javascript - 如何关闭手风琴菜单的打开部分?
- python - Scrapy/Python 请求优先级和 CONCURRENT_REQUESTS
- c# - 谷歌浏览器向每个控制器/剃须刀页面发送 2 个请求
- r - 如何使用 Nix 包管理器添加本地 R 包
- java - Spring MVC 表单 - 支持对象有 150 多个字段,可以自动生成 HTML 表单吗?