有多对多模型
class GeneralTagValue(models.Model):
pass
class Job(models.Model):
general_tags = models.ManyToManyField(
GeneralTagValue,
verbose_name=_('GeneralTags'),
blank=True,
help_text=_('GeneralTags'),
related_name="job_set",
related_query_name="jobs",
)
并有这样的一个ViewSet
class JobViewSet(viewsets.GenericViewSet,
mixins.RetrieveModelMixin, mixins.UpdateModelMixin, mixins.ListModelMixin):
queryset = Job.objects.all().order_by('id')
filterset_class = JobFilter
serializer_class = JobSerializer
permission_classes = [AllowAny]
关键点在于JobFilter
的编写上
class JobFilter(filters.FilterSet):
general_tags = filters.ModelMultipleChoiceFilter(
queryset=GeneralTagValue.objects.all(),
field_name='general_tags',
to_field_name='id',
widget=CSVWidget
)
class Meta:
model = models.Job
fields = ('general_tags')
关键点在于:CSVWidget
本文标题:django rest-framework DRF 逗分筛选
本文连接:https://blog.dextercai.com/archives/195.html
除另行说明,本站文字内容采用创作共用版权 CC-BY-NC-ND 4.0 许可协议,版权归本人所有。
除另行说明,本站图片内容版权归本人所有,任何形式的使用需提前联系。