如何从 Django 过滤器表单中的相关模型中过滤用户的名字

How to filter users first name from related model in Django filter form

我想使用 Django filter
从我的个人资料模型中过滤用户的名字 这是我在 models.py.

中的个人资料模型
from django.contrib.auth.models import User

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    total_members = models.CharField(max_length=500, blank=True)
    ...other fields

这是我的filters.py

import django_filters
from .models import Profile

class ProfileFilter(django_filters.FilterSet):

    class Meta:
        model = Profile
        fields = '__all__'

在这里,当我将我的表单添加到模板时,它会给我 select 标记所有用户的用户名,我不希望这样,因为如果用户想按名称过滤用户,他们可以按他们的搜索名称而不是在下拉列表中查找。
请帮助我 (:

我得到了解决方案我刚刚在我的 Django 过滤器表单中添加了一个文件并通过 双下划线(名称修改) 访问相关文件 user__first_name 这是我的代码的更改版本

import django_filters
from .models import Profile

class ProfileFilter(django_filters.FilterSet):
    first_name = django_filters.CharFilter(
        label="First Name",
        field_name="user__first_name",
        lookup_expr='icontains',
        widget=forms.TextInput(attrs={
            'placeholder': 'First Name',
            'class': 'form-control',
            'type': 'text'
        })
    )

    class Meta:
        model = Profile
        fields = ['first_name', ...other fields]