使列表与QuerySet具有可比性

时间:2017-04-10 15:03:59

标签: django django-queryset

首先我知道有类似的问题已经被问过(我看了看),但没有人回答我的问题。如果这个问题已经得到解答,请将链接发给我,我将删除此链接。

所以我有这个功能,我想比较一下Word在两个列表/ QuerySet中的使用频率。由于没有相同的结构我不能这样做。

productArr = self.tags.all() # is a QuerySet 
CustomerArr = self.user.userprofile.I_want.split(",")[:3]

productArr:(<QuerySet [<Tag: and>, <Tag: Jeans>, <Tag: Love>, <Tag: Leg>]CustomerArr:[u'Funny', u' and', u' 1234']

Model for CustomerArr:
class UserProfile(models.Model):
    I_want = models.CharField(max_length=50, default=‚example‘)


Model for productArr:
class Product(models.Model):
    tags = TaggableManager(verbose_name="tags",blank=False)
    …
    CustomerArr = self.user.userprofile.I_want.split(",")[:3]
    productArr = self.tags.all()
    def func(a, b):
        global favVal 
        favVal = 0
        for i in a:
            if i in b:
                #print('hey')
                favVal += 1 
        return False
    func(productArr, CustomerArr)

所以我尝试productArrlist = list(productArr)和类似的事情来使这两者相当,但它没有用。我希望有人可以帮助我。

此致

1 个答案:

答案 0 :(得分:0)

已使用values_list

self.tags.values_list('you_field_name', flat=True)

<强>更新

使用你的模型,我看到你正在使用django-taggit。在此API中,您有names()

productArr = self.tags.names()