Nombre de clés indéfini

a marqué ce sujet comme résolu.

Salut !

Je travaille avec Django Rest Framework 3 et je souhaiterais créer un serializer pour ce type de données :

1
2
3
4
5
6
{
    "key0": "val0",
    "key1": "val1",
    # ...
    "keyN": "valN",
}

Sachant que N est inconnu, varie d’une requête à l’autre. Je pourrais faire cela :

1
2
class MySerializer(Serializer):
    data = DictField(child=CharField())

Mais ça m’embête un peu d’introduire une clé data qui n’a pas de sens particulier. Est-il possible et souhaitable de procéder autrement ? J’ai essayé :

1
2
class MySerializer(DictField):
    child = CharField()

Mais j’obtiens l’erreur __init__() got an unexpected keyword argument 'data' quand je fais :

1
serializer = MySerializer(data=request.data)

Merci !

+0 -0

Mais j’obtiens l’erreur __init__() got an unexpected keyword argument 'data' quand je fais :

1
serializer = MySerializer(data=request.data)

Merci !

Vayel

Et si tu passes request.data sans kwarg ?

+0 -0

J’obtiens une erreur :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
class RulesSerializer(DictField):
    child = CharField()

@list_route(methods=['post'])
def my_route(self, request):
    serializer = RulesSerializer(request.data)

    if not serializer.is_valid():
        return Response(serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)
1
2
AttributeError at /usls/from_rules/
'RulesSerializer' object has no attribute 'is_valid'
+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte