2017-04-10 84 views
0

首先我知道有类似的问题已经被问到(我看过他们),但他们都没有回答我的问题。如果这个问题已经回答,请给我发送链接,我会删除这一个。创建一个列表并与QuerySet进行比较

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

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)和类似的东西,使这两个对比,但没有奏效。我希望有人能帮助我。

问候

回答

0

使用values_list

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

UPDATE:

与您的模型,我看见你正在使用的Django taggit。在API的这个,你有names()

productArr = self.tags.names() 
+0

我以前看到这个,它并没有为我工作。当我在productArr上这样做时,我仍然得到一个querySet,并在CustomerArr上它不可用(我在管理中没有得到任何结果)。 – hansTheFranz

+0

这没有工作的原因。你在productArr上做了什么? 你能分享你的模特吗?你在productArr中除了什么? – Wilfried

+0

请看我最新的答案。在productArr中,我有一个由用户提供的标签列表。在CustomerArr中,我有一个正常字符串的列表。我只是想,也许我应该将CustomerArr也转换为标签,因此它也是一个querySet ... – hansTheFranz

相关问题