2017-10-14 3 views
1

Je mets une valeur datetime à mon backend drf. Ceci est mon code:django reste 400 responce lors de la mise en champ de date

models.py

class MyModel(models.Model): 
    .... 
    date = models.DateField(blank=true, null=true) 
    ..... 

serializers.py

class MyModelSerializer(ModelSerializer): 
    class Meta: 
     model = MyModel 
     fields = '__all__' 

views.py

class UpdateNRetrieve(RetrieveUpdateAPIView): 
    queryset = MyModel.objects.all() 
    serializer_class = MyModelSerializer 
    lookup_field = 'pk' 

Sur mon settings.py j'ai ceci:

REST_FRAMEWORK = [ 
    ..... 
    'DATE_FORMAT': '%d/%m/%Y', 
    'DATE_INPUT_FORMATS': '%d/%m/%Y', 
    ..... 
] 

Et aussi ceci:

LANGUAGE_CODE = 'it-IT' 

TIME_ZONE = 'Europe/Rome' 

USE_I18N = True 

USE_L10N = True 

USE_TZ = True 

Quand je fais une demande de PUT de mon front-end, je reçois 400 erreur (mauvaise demande) whit cette valeur:

date:"04/12/1984" 

Je reçois toujours ce Réponse:

La date est au format incorrect. Utilisez un de ces formats plutôt:%, d, /,%, m, /,%, Y. »

Je ne peux pas comprendre où est mon erreur

Répondre

2

DATE_INPUT_FORMATS dans settings.py devrait être une liste:

'DATE_INPUT_FORMATS': ['%d/%m/%Y'], 
+0

Merci! Ce doit être une liste de chaînes et pas une chaîne! –

2
'DATE_INPUT_FORMATS': '%d/%m/%Y', 

sont u que ce clé attend une chaîne et non une liste

de documentation:

une liste des chaînes de format qui doit être utilisé par défaut pour les entrées d'analyse syntaxique

+0

Vous avez raison! Je vous remercie! –