如何在 Django 過濾器表單中從相關模型中過濾用戶的名字

安吉蒂瓦里

我想使用Django 過濾器 從我的個人資料模型中過濾用戶的名字,
這是我在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__'

在這種情況下,當我將表單添加到模板時,它為我提供了帶有所有用戶用戶名的選擇標籤,我不希望這樣,因為如果用戶想按用戶名過濾用戶,那麼他們可以按用戶名進行搜索,而不是在下拉列表中查找。
請幫我 (:

安吉蒂瓦里

我得到了解決方案,我剛剛在我的 Django 過濾器表單中添加了一個文件,並通過Double Underscore (Name Mangling) 訪問相關文件,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]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在django中通過ajax單擊功能後從數據庫返回相關值?

Django - 如何使用登錄用戶過濾的另一個模型中的字段填充模型選擇字段中的選項

ListView中的Django過濾關係

如何從django中的相關字段模型中獲取用戶ID?

如何從給定的一組過濾器中正確地在熊貓中應用過濾器?

如何使用過濾器查找文本中的相鄰單詞

Ant 設計表過濾器:如何在過濾器中限制為一個選擇

如何實現我自己的搜索過濾器 - Django?

django 如何在查詢過濾器中使用變量

是否可以在 Django 中添加用戶過濾按鈕

當用戶通過 Django 模型表單註冊時,如何為特定類型的用戶生成自定義 ID

如何在 Flutter 中設計過濾器?

如何在 springboot 中添加條件過濾器

如何在Odata中添加過濾器?

在django中按日期時間過濾模型

如何在QTableView中應用過濾器後顯示特定行

如何在java流中應用雙重過濾器?

如何根據 Django 中的最新條目反向過濾

PostgreSQL:如何從表“A”中獲取由表“B”中的列過濾的數據

如何通過 Django 中的 prefetch_related 過濾具有更多條件的反向外鍵

Django ORM過濾器模型,其中所有關係的值都等於

如何從日期列中過濾掉文本?

Django 向 ForeignKey 下拉菜單添加過濾器

如何在javascript中過濾彈性查詢?

如何在 JavaScript 中過濾和映射數組

如何在python中過濾html輸出?

如何按版本 Django 過濾書籍?

如何在您的網站中添加分頁器和過濾器?

如何在python中使用SQLalchemy過濾SQL表中的日期時間列?