2015-05-09 85 views
0

我正在使用django-filter應用程序來過濾我的'項目'模型。這裏是我的模型:使用Django過濾器時反向foreignkey關係

class Project(models.Model): 
    name = models.CharField(max_length=100) 

class ProjectAllocation(models.Model): 
    project = models.ForeignKey(Project) 
    location = models.ForeignKey(Location) 

class Location(models.Model): 
    name = models.CharField(max_length=50) 

這裏是我的過濾器: 類ProjectFilter(django_filters.FilterSet):

class Meta: 
    model = Project 
    fields = {'name': ['icontains'], 
    } 

我想在自己的項目過濾器 '位置' 字段。在閱讀django-filter的docs時,他們唯一的例子是直接的外鍵關係。

是否有可能實現我想要的?如果可能的話,請指導我。

預先感謝您。

+0

嘗試https://django-filter.readthedocs.org/en/latest/ref/filters.html#modelmultiplechoicefilter –

回答

0

無法找到這個問題的答案令人吃驚,所以在這裏它是:

fields = {'name': ['icontains'], 
      'projectallocation_set': ['icontains'] 
      } 

和過濾器:

projectallocation_set = django_filters.CharFilter(name='projectallocation_set__name')

但我會更好地利用related_name對於那些2 ForegnKey ProjectAllocation中的字段模型的方式相同。