亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Django 中獲取過濾器鍵和結果元組

如何在 Django 中獲取過濾器鍵和結果元組

慕容3067478 2021-07-29 14:04:39
假設有一個包含所有要搜索的鍵的列表,稱為taglist。要過濾所有 Post contains tag in taglist,我使用以下命令。Post.objects.filter(tags__tag__in=taglist).order_by('-id')并在 class Posttags = models.ManyToManyField('PostMention')在 PostMenthionclass PostMention(models.Model):     tag = models.CharField(unique=True,max_length=200)我會得到一個關于結果的查詢列表。我可以獲得像這樣的元組列表(each_result,tag_that_used_to_found_the_result)嗎?
查看完整描述

1 回答

?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

是的,我們可以將.annotate(..)每一行與相關的Tag:


from django.db.models import F


Post.objects.filter(

    tags__tag__in=taglist

).annotate(

    the_tag=F('tags__tag')

).order_by('-id')

這里的Post對象將有一個額外的屬性.the_tag,它包含匹配的標簽的字符串。如果匹配多個標簽,查詢Post集中將有多個對象,每個對象都有自己的.the_tag屬性。


我們可以將其后處理為 2 元組,但我認為屬性是更好的選擇,因為此字段包含的內容很清楚。


查看完整回答
反對 回復 2021-08-03
  • 1 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號