如何在Django中将QuerySet转换为list



如何将QuerySet转换为列表?

myWords = MyGroup.objects.get(name="bla").allkeyword
# To
myWords = ["meltemi", "bla"]
class MyGroup(models.Model):
    name = models.CharField(max_length=32, unique=True)
    allkeyword = models.ManyToManyField('KeywordTag')
    def __unicode__(self):
        return '%s' % (self.name)
class KeywordTag(models.Model):
    name = models.CharField(max_length=32, unique=True)
    def __unicode__(self):
        return self.name

可以使用values_list():

myWords = MyGroup.objects.get(name = "bla").allkeyword.values_list('name', flat=True)

values_list()返回QuerySet的列表,然后可以使用list()将其转换为普通列表,如下所示:

                                                  # ↓ Here ↓        
myWords = MyGroup.objects.get(name="bla").allkeyword.values_list('name', flat=True)
print(myWords) # <QuerySet ['Group 1', 'Group 2', 'Group 3']>
      # ↓ Here ↓
print(list(myWords)) # ['Group 1', 'Group 2', 'Group 3']

最新更新