DRF筛选器不使用Postgres的布尔值

2024-09-27 00:18:18 发布

您现在位置:Python中文网/ 问答频道 /正文

<>使用DRF过滤器时,错误的输出,它返回基于UsSeriID的数据,看起来好像没有考虑查询的ItMeMeTestItMyListActudio状态。

Views.py

from django_filters.rest_framework import DjangoFilterBackend

class ItemmasterAPIView(mixins.CreateModelMixin, generics.ListAPIView):
    serializer_class = ItemmasterSerializer
    queryset = Itemmaster.objects.all()
    filter_backends = [DjangoFilterBackend]
    filter_class = ItemMasterItemFilter 

过滤器.py

from django_filters import rest_framework as filters
from itemmaster.models import Itemmaster, ItemmasterItem
class ItemMasterItemFilter(FilterSet):
    user_id = filters.CharFilter('itemmaster_updated_by_id')
    item_status = filters.BooleanFilter('itemmaster__itemmaster_item_active')

    class Meta:
        model = Itemmaster
        fields = ('user_id', 'item_status',)

序列化程序.py

class ItemmasterItemSerializer(serializers.ModelSerializer):
    
    item_ref_image = serializers.SerializerMethodField(read_only=True)
    class Meta:
        model = ItemmasterItem
        fields = ('item',  'itemmaster_item_active')
        
class ItemmasterSerializer(serializers.ModelSerializer):
    itemmaster = ItemmasterItemSerializer(many=True, read_only=True)
    class Meta:
        model = Itemmaster
        fields = ( 'itemmaster', 'itemmaster_updated_by')

models.py

    itemmaster_updated_by = models.OneToOneField(
        User, on_delete=models.CASCADE, related_name='itemmaster_updated_by')
class ItemmasterItem(models.Model):
    itemmaster = models.ForeignKey(Itemmaster, on_delete=models.CASCADE, related_name='itemmaster')
    itemmaster_item_active = models.BooleanField(default=True)

Tags: frompyimportidtruebymodelsitem

热门问题