前提・実現したいこと
Django-Filterを使用して絞り込みしたjsonデータを取得したいと考えています。
逆参照先のカラムで絞り込みをして取得する方法はありませんか?
現在はprofilemodelからOneToOneFieldのuserを用いて参照しています。
下記に記載したように、ほかのモデルからも参照する場合はUsermodelからの逆参照で絞り込む必要がでてきそうです。
ModelをUsermodel
profilemodelのusernameで絞り込み
pointmodelのポイントで絞り込み
が行えるようにしたいです。
※不可能でエンドポイントを分ける必要がありそうでしたら教えてくださるとうれしいです。
該当のソースコード
python
1 2class TopFilter(django_filters.FilterSet): 3 username = django_filters.CharFilter(lookup_expr='contains') 4 user__category__name = django_filters.CharFilter(lookup_expr='exact') 5 user__company__id = django_filters.CharFilter(lookup_expr='exact') 6 order_by= django_filters.OrderingFilter( 7 fields = ( 8 ('id'), 9 ('title'), 10 ('detail') 11 ) 12 ) 13 14 class Meta: 15 model = ProfileModel 16 fields = ['username', 'user__category__name', 'user__company__name'] 17 18 19class UserModel(AbstractBaseUser, PermissionsMixin): 20 email = models.EmailField(_('メールアドレス'), unique=True) 21 22class PointModel(models.Model): 23 user = models.OneToOneField( 24 UserModel, 25 on_delete=models.CASCADE, 26 related_name='pointmodel_user', 27 ) 28 main_point = models.IntegerField(_('メインポイント'), default=0) 29 sub_point = models.IntegerField(_('サブポイント'), default=0) 30 31class ProfileModel(models.Model): 32 username = models.CharField(_('ユーザー名'), max_length=256, blank=True, default='未設定ユーザー') 33 profile_img = models.ImageField(_('プロフィール画像'), upload_to=get_image_path, blank=True, default='default/default_icon.png')
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。