在Djang的标记对象数组中查找标记的最佳方法

2024-04-24 23:38:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用django标记,我有一个标记对象数组。确定给定标记是否在其中的最佳方法是什么?你知道吗

def is_new (self):
    tags = Tag.objects.get_for_object(self) 
    tagged = False

    for tag in tags:
        if tag = 'new':
            tagged = True

    return tagged

Tags: 对象django方法标记selfnewforobjects
2条回答
tags = Tag.objects.get_for_object(self) 

if 'new' in tags:
    return True

我从来没有真正使用过django标记,但是快速地查找源代码。get\u for\u对象返回该对象的标记的查询集。不是真正的名单。你知道吗

我不确定您的代码是否正常工作[从赋值/比较问题来看],或者您是否只是想改进它。但是,既然您正在返回一个queryset,您就不能继续过滤它吗?例如:

Tag.objects.get_for_object(self).filter(name='new')

或者可以用詹姆逊的例子:

if 'new' in tags:
   return True

我想你需要先把查询集变成一个列表。你知道吗

list(tags)

然后它就会起作用。你知道吗

请参见documentation以获取强制列表求值,并注意这样做的内存问题。你知道吗

所以我的建议是先测试过滤——让我们知道它是否有效,因为现在我很好奇。你知道吗

相关问题 更多 >