如何将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']