Django中的filter返回重复对象

models.py
class Thing(models.Model):

    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=256)
    tags = TaggableManager(blank=True)
views.py
ob = models.Thing.objects.filter(Q(name__icontains=q)|Q(tags__name__in=[q]))

希望得到的结果:名称或tag包含q的Thing对象
实际得到的结果:相同的对象重复出现,出现次数与该对象的tag数量相同

解决方案:
ob = models.Thing.objects.filter(Q(name__icontains=q)|Q(tags__name__in=[q])).distinct()

 

posted @ 2021-07-27 10:57  徐钏  阅读(397)  评论(0)    收藏  举报