J'essaye d'ajouter un champ supplémentaire auth_token dans ma table avec le request.data
mais il donne des erreurs. L'erreur est - data['auth_token_id'] = auth_token TypeError: list indices must be integers or slices, not str
ajouter un contexte supplémentaire tout en passant des données à seriali django api
Mon code est donné ci-dessous:
serializers.py
class AppSerializer(serializers.ModelSerializer):
class Meta:
model = ThirdPartyApps
fields = ('app_name', 'package_name', 'auth_token_id')
views.py
@api_view(['POST'])
def add_apps(request):
data = request.data
auth_token = request.META.get('HTTP_AUTHTOKEN', '')
data['auth_token_id'] = auth_token
serializer = AppSerializer(data=data, many=True)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_200_OK)
else:
return Response(serializer.errors)
Je cherche un moyen de transmettre des données supplémentaires à travers le sérialiseur. Je veux juste ajouter auth_token
à mon modèle comme le request.data
mais il donne cette erreur -
data['auth_token_id'] = auth_token TypeError: list indices must be integers or slices, not str
et comment vais-je le sauver? –
votre réponse est certainement exacte mais comment vais-je sauver tit à ma table –
Si vous vouliez l'enregistrer, vous devez créer un modèle (ou en utiliser un existant) et y ajouter un champ, probablement un 'models.CharField (max_length = 254) 'puis réglez-le' model.auth_token_id = request.META.get ('HTTP_AUTHTOKEN', '') 'puis' model.save() 'dans vos vues, ou d'où vous recevez le jeton auth. – montudor