Django-filter: Meta.fields 包含未在此 FilterSet 上定义的字段

创建于 2015-11-26  ·  1评论  ·  资料来源: carltongibson/django-filter

你好,

我有一些错误,我不明白为什么会这样。

在调用具有外键的模型时使用 django rest 框架时,我收到以下错误消息。

Error:
Meta.fields contains a field that isn't defined on this FilterSet
From:
django_filters/filterset.py
Django version 1.8.5
django-filter version 0.11.0

我的模型如下:

class Contract(models.Model):
    idContract = models.AutoField(db_column='idContract',primary_key=True)  
    idClient = models.ForeignKey(Client, db_column='idClient',related_name='+')
    contractmode = models.ForeignKey('Ccontractmode', db_column='ContractMode',related_name='+') 
    applicationdate = models.DateTimeField(db_column='applicationDate',null=True) 
    deliverydate = models.DateTimeField(db_column='deliveryDate', blank=True, null=True) 
    expirationdate = models.DateTimeField(db_column='expirationDate',null=True)
    mode = models.CharField(max_length=16)

    class Meta:
        managed = False
        db_table = 'Contract'
        default_permissions = ('add', 'change', 'delete', 'view')

如果您能告诉我这是一个错误还是我有什么问题,我将不胜感激。
非常感谢。
亚当

最有用的评论

好吧,我很抱歉,我刚刚发现了这个问题。

class ContractViewSet(viewsets.ModelViewSet):
    permission_classes = (DjangoModelPermissions2,
                          DjangoObjectPermissions2,)
    queryset = Contract.objects.all()
    serializer_class = ContractSerializer
    filter_backends = (filters.DjangoFilterBackend,)
    filter_fields = ('applicationdate',)

在 filter_fields 我没有把逗号放在一个元组中。

>所有评论

好吧,我很抱歉,我刚刚发现了这个问题。

class ContractViewSet(viewsets.ModelViewSet):
    permission_classes = (DjangoModelPermissions2,
                          DjangoObjectPermissions2,)
    queryset = Contract.objects.all()
    serializer_class = ContractSerializer
    filter_backends = (filters.DjangoFilterBackend,)
    filter_fields = ('applicationdate',)

在 filter_fields 我没有把逗号放在一个元组中。

此页面是否有帮助?
0 / 5 - 0 等级