Python+Django REST FrameworkでAPIを作ってみた2(登録処理)

はじめに

前回はインストール~プロジェクト作成~検索処理まででしたが、登録処理について記載します。

ビュー

シリアライザでリクエストのデータをモデルの形式に変換し、バリデーション後にserializer.saveで保存するだけで登録できます。

def post(self, request, *args, **kwargs):
  serializer = PokemonListSerializer(data=request.data)
  serializer.is_valid(raise_exception=True)
  serializer.save()
  return Response(serializer.data, status.HTTP_201_CREATED)
def post(self, request, *args, **kwargs):
  serializer = PokemonNameListSerializer(data=pokemonNames)
  serializer.is_valid(raise_exception=True)
  serializer.save()
  return Response(serializer.data, status.HTTP_201_CREATED)

シリアライザ

シリアライザした結果をデータを登録用に編集したい場合、createメソッドで登録処理を記述する事ができます。

def create(self, validated_data):
  pokemon = Pokemon.objects.get(pk=validated_data['id'])
  pokemonName = PokemonName.objects.create(
    id=validated_data['id'], 
    local_language_id=validated_data['local_language_id'], 
    name=validated_data['local_language_id'], 
    form_name=validated_data['form_name'],
    pokemon_id=pokemon.id)

  return pokemonName

未分類

Posted by ababa