Python Queryset Django一次显示对象

Python Queryset Django一次显示对象,python,django,filter,django-queryset,Python,Django,Filter,Django Queryset,我有一个关于使用django进行查询的问题。 我正在筛选我的查询, 但很少有人能提供不止一个信息 比如说 class Teacher(models.Model): teacher_id = .... language = models.ForeignKey(Language) class Language(models.Model): language_id = .... language = .... 现在我从数据库中的教师和语言中获得了一些对象 1老师有很

我有一个关于使用django进行查询的问题。 我正在筛选我的查询, 但很少有人能提供不止一个信息

比如说

class Teacher(models.Model):
    teacher_id = ....
    language = models.ForeignKey(Language)

class Language(models.Model):
    language_id = ....
    language = ....
现在我从数据库中的教师和语言中获得了一些对象

1老师有很多信息,他会说3种语言。 这个外键行吗,还是我应该用ManyToManyField? (这不是最后一个问题)

我现在可以找一些老师,我有一个表格,在那里我可以放一些对我来说很重要的信息

比如说,我正在寻找一位老师,他会说英语和法语

我有这个想法

query = Teacher.object.all()
q = Q(is_active=True)

    language = request.POST.getlist('language', [x.language_id for x in Language.objects.all()])
    if language:
       q &=Q(language__in=language)
现在我正在使用Paginator

paginator = Paginator(query.filter(q), items_per_page)
现在我有问题了

我的过滤器现在显示所有法语和英语教师,但现在显示了2次

我只想一次显示所有对象

我该怎么办


我希望您理解我的意思。

我不理解您的代码,因为我不知道您发布的数据,但是使用.distinct()怎么样在你的问题上??如果一名教师能说多种语言,那么你需要一个多语种字段。我假设你与同一名教师见面两次,因为你为同一名教师做了两次记录,一次记录法语,一次记录英语。。。使用ManyToMany可以解决这个问题,因为每个教师只有一个
教师
记录。问题不在于ManyToManyField,它与forgeinkey一起工作也很好。using.distinct()让我很开心。thx for Answearing正如一位内视人士所说,如果老师能说一种以上的语言,你将需要m2m。