使用Django v1.11的AM
我有以下型号:
class LineItem():
quote = models.ForeignKey(Quote, related_name="quote_line_items")
sku = models.ForeignKey(SKU)
class Quote():
def fetch_as_list_of_dict(self):
return LineItem.objects.filter(quote=self).select_related('sku__product').values()
class SKU():
product = models.ForeignKey(Product)
我的fetch_as_list_of_dict
无法包含sku.product_id或sku.product对象。我只需要将sku.product_id作为字典的一部分即可,字典本身就是列表中的许多字典之一。
我该如何实现?
答案 0 :(得分:1)
您可以通过以下方式简单地做到这一点:
def fetch_as_list_of_dict(self):
return self.listitem_set.select_related('sku__product').values('sku__product') # or any fields like sku__product__name, sku__product__id anything
请查看related object文档,以获取有关获取相关对象的更多详细信息。
答案 1 :(得分:0)
代码似乎正确,您可以做一件事- 如下将self更改为self.pk
def fetch_as_list_of_dict(self):
return LineItem.objects.filter(quote=self.pk).select_related('sku__product').values()
第二种方式- 尝试仅首先获取SKU对象。
def fetch_as_list_of_dict(self):
return LineItem.objects.filter(quote=self).select_related('sku__product')