我的模特
class Article(models.Model) :
title = models.CharField(max_length = 100)
category = models.CharField(max_length = 50, blank = True)
date_time = models.DateTimeField(auto_now_add = True)
content = models.TextField(blank = True, null = True)
def __unicode__(self) :
return self.title
class Meta:
ordering = ['-date_time']
如何使列表包含所有类别而不重复?
使用语法:
post_list = Article.objects.filter(category__iexact = tag)
答案 0 :(得分:2)
您可以使用values_list
提取特定字段的所有值。
category_list = Article.objects.values_list('category', flat=True)
从列表中删除重复项:
categories = list(set(category_list))
或@Iain指出,您可以使用.distinct()
category_list = Article.objects.values_list('category', flat=True).distinct()
答案 1 :(得分:0)
您要查找的功能是distinct
。由于它在数据库层中进行过滤,因此它应该比Python代码中的过滤器更快
post_list = Article.objects.filter(category__iexact = tag).distinct()
答案 2 :(得分:0)
对于至少存在一篇文章的所有类别,您可以执行以下操作:
Category.objects.filter(article_set__isnull=False).distinct()
这也会为您提供QuerySet
,与list
不同,您可以使用for(var i= 0; i < data.length; i++){
map.addMarker({
'position': data[i].latLng,
'title' : i
}, function(marker){
arrayOfMarkers.push(marker);
})
进行进一步的查询。