Django-filter: Meta.fields enthält ein Feld, das in diesem FilterSet nicht definiert ist

Erstellt am 26. Nov. 2015  ·  1Kommentar  ·  Quelle: carltongibson/django-filter

Hallo,

Ich habe einen Fehler, den ich nicht verstehe, warum er passiert.

Ich erhalte diesen Fehler den folgenden Fehler, während ich das Django-Rest-Framework in einem Aufruf an ein Modell mit einem ForeignKey verwende.

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

Mein Modell ist folgendes:

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')

Ich würde mich sehr freuen, wenn Sie mir sagen könnten, ob dies ein Fehler ist oder ich etwas falsch habe.
Danke vielmals.
Adam

Hilfreichster Kommentar

Ok, tut mir leid, ich habe das Problem gerade erst gefunden.

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

in filter_fields habe ich das Komma nicht gesetzt, um es zu einem Tupel zu machen.

>Alle Kommentare

Ok, tut mir leid, ich habe das Problem gerade erst gefunden.

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

in filter_fields habe ich das Komma nicht gesetzt, um es zu einem Tupel zu machen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen