我目前在django的數據庫應用程序中工作。我想使用django-filter爲頁面添加高級過濾功能,但是我發現了一個問題,我希望你能幫助我。Django .filter只顯示第一個對象
爲了說明我的觀點,
Organism.objects.all().filter(lipids=Lipid.objects.all())
只返回具有第一脂質對象的生物對象,而不是所有的生物對象的....
更多細節: 比方說,我的型號有: 型號:
class Organism(models.Model):
species_name = models.CharField(max_length=200, help_text="Species Name")
strain_name = models.CharField(max_length=200, help_text="Strain Name")
lipids = models.ManyToManyField('Lipid',blank=True)
def __str__(self):
return('{}'.format(self.species_name))
class Lipid(models.Model):
common_name = models.CharField(max_length=100,blank=True)
category = models.CharField(max_length=100,blank=True)
main_class = models.CharField(max_length=100,blank=True)
def __str__(self):
return('{}'.format(self.common_name))
在Django的殼:
In [1]: from catalog.models import *
In [2]: o = Organism.objects.all()
In [3]: l = Lipid.objects.all()
In [4]: o
Out[4]: <QuerySet [<Organism: speceies_name_001>, <Organism: speceies_name_002>, <Organism: speceies_name_003>, <Organism: speceies_name_004>]>
In [5]: l
Out[5]: <QuerySet [<Lipid: common_name_001>, <Lipid: common_name_002>, <Lipid: common_name_003>, <Lipid: common_name_004>]>
In [6]: o.filter(lipids=l)
Out[6]: <QuerySet [<Organism: speceies_name_001>]>
我期望看到所有的生物[6],因爲我沒有過濾任何東西!
我相信這是一個基本的東西我失蹤,但無法弄清楚!
所以你基本上想要所有的有機體與他們有關聯的脂質? – karthikr
是的,其實這是對我的問題的簡化,只是爲了表明我的觀點。在這種情況下,我期待看到所有的有機體,因爲我正在過濾所有的脂質......而且它只返回具有第一脂質的有機體......我相信它與脂質成爲一體manytomany field .... –