django-filter 在另一个过滤器类中使用过滤器类

问题描述 投票:0回答:0

我使用django-filter

我有两个模型,分别名为 Person 和 Member。 Person 已被定义为 Member 中的外键。作为这里的示例,我添加了较少的字段,通常 PersonModel 模型有更多的字段。我在这里想要做的是在我为 Member 创建的过滤器类中使用我为 person 创建的所有过滤器字段。

模型.py

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

class MemberModel(models.Model)
  register_no = models.CharField(max_length=20, unique=True)
  person = filters.ForeignKey(PersonModel, on_delete=models.PROTECT, related_name='members')

过滤器.py

class PersonFilter(filters.FilterSet):
    name= filters.CharFilter(field_name='name')
    last_name= filters.CharFilter(field_name='last_name')


class MemberFilter(filters.FilterSet):
  register_no = filters.CharFilter(field_name='register_no')
  
  #
  # I want to use PersonFilter here
  # for example: person = PersonFilter(lookup_expr="person") or how? 
  #
  # I don't want to do it this way:
  # person_name = filters.CharFilter(field_name='person__name')
  # person_last_name = filters.CharFilter(field_name='person__last_name')
django django-filter
© www.soinside.com 2019 - 2024. All rights reserved.