On models.py ============ class Transfer(models.Model): """ """ amount = models.DecimalField( max_digits=11, decimal_places=2, ) source_account = models.ForeignKey( 'account.Account', related_name='source_account', ) destination_account = models.ForeignKey( 'account.Account', related_name='destination_account', ) created_at = models.DateTimeField( auto_now_add=True, ) class Meta: ordering = ['created_at'] On filters.py ============= from django_filters import FilterSet from django_filters import CharFilter from accounts.models import Transfer class TransferFilterSet(FilterSet): """ """ class Meta: model = Transfer fields = [ 'source_account', 'destination_account', ] On views.py from accounts.models import Transfer from account.filters import TransferFilterSet def transfer_list(request): """ """ filterset = TransfetFilterSet( request.GET or None, queryset=Transfer.objects.all(), ) return render(request, 'account/transfer_list.html', { 'filter': filterset, })