I know it is an old question, but might be worth it to give an updated answer.
Django-filter contributors have added a field called BaseInFilter
which you can combine with other filters to validate the content.
See the docs:
https://django-filter.readthedocs.io/en/latest/ref/filters.html#baseinfilter
For example, this would work in your case:
from django_filters import rest_framework as filters
class NumberInFilter(filters.BaseInFilter, filters.NumberFilter):
pass
class AccommodationFilter(filters.FilterSet):
accommodationType_id_in = NumberInFilter(field_name="accommodationType_id", lookup_expr="in")
class Meta:
model = Accommodation
fields = ['accommodationType_id_in', ]
Then you would be able to filter by a list of ids: http://localhost:8000/accommodations?accommodationType_id_in=1,2