簡體   English   中英

如何使用Django中QuerySet返回的字典中的值

[英]How to use value from dictionary returned by QuerySet in Django

我寫了這個查詢

p_name = OrderLine.objects.filter(order_id=order).values('product_name')

它返回以下結果

<QuerySet [{'product_name': 'doc 1 (1-1000)'}]>

我只想使用doc 1 (1-1000)作為字符串。 有沒有辦法做到這一點。 我在某個網站上閱讀過使用.values()但返回的是[{'product_name': 'doc 1 (1-1000)'}]

您可以使用values_list() + flat=True來生成列表。

>>> p_name = OrderLine.objects.filter(order_id=order).values_list('product_name',flat=True)
>>> print(p_name)
>>> <QuerySet ['doc 1 (1-1000)']>

這旨在從在value_list()傳遞的字段中生成值列表。 如果您確定它只有一個值並且是想要的值,則可以在列表中為該項目建立索引:

>>> p_name[0]
>>> 'doc 1 (1-1000)'

我同意@Lemayzeur的答案。 但是,您也可以通過兩種方式使用代碼:

p_name.first() # this will return the dictionary itself

或者您可以使用以下命令將查詢集轉換為列表

list(p_name)

這不是推薦的方法,但是在其他情況下可能會派上用場。

干杯!

暫無
暫無

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

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