簡體   English   中英

如何使用django-tagging-0.3.1在標記名稱中允許空格?

[英]How to allow whitespaces in tag names using django-tagging-0.3.1?

我正在使用django-tagging-0.3.1軟件包來標記我網站上的所有文章。 但是我發現這個包似乎不支持標簽名稱中的空格,這意味着當標簽名稱中有空格並且你使用它提供的函數TaggedItem.objects.get_by_model來搜索所有帶有這個標簽的文章時,你將獲得一個空列表。 但實際上我檢查了我的服務器並顯示了標簽名稱並正確地與相應的文章相關聯。 那么我有什么方法可以配置空間包含標簽搜索嗎? 謝謝。

問題似乎出現在get_tag_list實用程序函數中,該函數由get_by_model 如果傳遞了一個字符串(例如'my tag with spaces' ),它將返回以下查詢:

Tag.objects.filter(name__in=parse_tag_input(tags))

不幸的是, parse_tag_input函數假設空格分隔的單詞是不同的標簽 ,因此它會斷言您正在搜索標簽['my', 'tag', 'with', 'spaces'] ,這當然不會返回任何東西。

稍后在get_tag_list函數中,檢查輸入是否為list / tuple:

elif isinstance(tags, (types.ListType, types.TupleType)):
    ...

它后面的代碼不會調用parse_tag_input (我猜它假定列表/元組中的每個字符串都是完全形成的標記 )。

TL; DR:因此,我相信如果你傳遞一個元組或包含標簽名稱的列表,它會正確地找到它。

TaggedItem.object.get_by_model(MyModel, ['my tag with spaces'])

暫無
暫無

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

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