我正在使用django-tagging,我有一个标记对象数组。确定给定标签是否属于其中的最佳方法是什么?
def is_new (self):
tags = Tag.objects.get_for_object(self)
tagged = False
for tag in tags:
if tag = 'new':
tagged = True
return tagged
答案 0 :(得分:1)
我从未真正使用过django标记,但是很快查看源代码.get_for_object返回该对象的标记的查询集。不是真正的清单。
我不确定您的代码是否正常工作[来自分配/比较问题]或者您是否只想改进它。但是,由于您返回的是查询集,因此无法继续过滤它,例如:
Tag.objects.get_for_object(self).filter(name='new')
或者能够使用JamesO的例子:
if 'new' in tags: return True
我认为您需要先将查询集转换为列表。
list(tags)
然后它应该有用。
请参阅documentation强制列表评估 - 并注意内存问题。
所以我的建议是首先测试过滤 - 让我们知道它是否有效,因为现在我很好奇。
答案 1 :(得分:0)
tags = Tag.objects.get_for_object(self)
if 'new' in tags:
return True