簡體   English   中英

如何獲取Django相關模型行並作為字典列表返回?

[英]How to fetch Django related model rows and return as a list of dictionary?

AM使用Django v1.11

我有以下型號:

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作為字典的一部分,該字典本身就是列表中的許多字典之一。

我該如何實現?

您可以通過以下方法簡單地做到這一點:

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

請查閱相關對象文檔以獲取有關獲取相關對象的更多詳細信息。

該代碼似乎正確,您可以做一件事-將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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM