At the following code I get the 'ImproperlyConfigured' error, while with the uncommented line and won't. Why?
class EigenBankRekeningSerializer(serializers.ModelSerializer):
class Meta:
model = EigenBankRekening
fields = (
'id'
'userid',
'aangemaakt',
'gewijzigd',
'naam',
'informatie',
'iban_prefix',
'bankrekening',
'valuta',
'eigen_gbr',
'zakelijke_rekening',
'oudedagsreserve',
)
# fields = '__all__'
Exception Value: Field name iduser
is not valid for model EigenBankRekening
.
In views.py I've got a filter by userid, but why is it prefixed with id in the API?
class EigenBankRekeningView(viewsets.ModelViewSet):
permission_classes = [AllowAny]
serializer_class = EigenBankRekeningSerializer
queryset = EigenBankRekening.objects.all()
def get_queryset(self, **kwargs):
user_bank = EigenBankRekening.objects.filter(userid=self.request.user.id)
return user_bank
CodePudding user response:
Because you forgot to add comma after id
field. Python assumes that id
and userid
is one string and concatenates both values. To fix just add comma after id
:
class EigenBankRekeningSerializer(serializers.ModelSerializer):
class Meta:
model = EigenBankRekening
fields = (
'id', # here
'userid',
'aangemaakt',
'gewijzigd',
'naam',
'informatie',
'iban_prefix',
'bankrekening',
'valuta',
'eigen_gbr',
'zakelijke_rekening',
'oudedagsreserve',
)
To reproduce the error you can try following:
print(
'id'
'user'
) # output >'iduser'