在我的模型中,我有一个值'type_name':
class FooModel(models.Model):
type_name = models.CharField(max_length=30)
在我的Views.py中,我想从DB生成一个带有这些type_name-inputs的QuerySet,但它不应该有多个相同值的时间。
我试过了:
FooModel.objects.all().values_list('type_name', flat=True)
得到
<QuerySet ['X', 'X', 'X', 'Y']>
但我需要的是:
<QuerySet ['X', 'Y']>
您可以通过向查询集添加.distinct()
来为此添加“uniqness过滤器”(通常在数据库端执行):
FooModel.objects.all().values_list('type_name', flat=True).distinct()
这将生成一个如下所示的查询:
SELECT DISTINCT type_name
FROM app_foo_model