我有两个模型,分别名为 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')