Django RestFRamework фильтрует поле модели ManytoMany
В моем приложении django у меня есть две модели:
class Device(models.Model):
mac_id = models.CharField(max_length=400, primary_key=True, null=False)
short_name = models.CharField(max_length=400, default='')
...
class Anagrafica(models.Model):
id = models.AutoField(primary_key=True)
cod_imp = models.CharField(max_length=80, verbose_name="Codice impianto")
rb_sel = models.ManyToManyField(Device)
Ну, мне нужно фильтровать в моем API с помощью Django RestFramework поле rb_sel, поэтому я пытаюсь:
в serialyzers.py:
class RaspFilter(django_filters.FilterSet):
rb_sel = django_filters.BaseInFilter(
name ='rb_sel__short_name',
lookup_type='in',
)
class Meta:
model = Anagrafica
fields = ('cod_imp', 'rb_sel')
class AnagraficaSerializer(serializers.ModelSerializer):
owner = serializers.ReadOnlyField(source='owner.username')
rb_list = DeviceSerializer(read_only=True, many=True)
class Meta:
model = Anagrafica
fields = ['id', 'cod_imp', 'soc', 'soc_sigla', 'regione', 'prov', 'comune', 'cap', 'indirizzo', 'coordinate', 'notes', 'rb_list', 'owner']
filter_class = RaspFilter
и в моем views.py я добавляю:
filter_backends = [DjangoFilterBackend]
filter_class = RaspFilter
но когда я пробую свой api, я получаю ошибку 500:
TypeError at /api/anagrafica/ init() получил неожиданный аргумент ключевого слова 'name'
где я ошибаюсь? как я могу отфильтровать поле rb_list моей мультомании?
Заранее большое спасибо