マッパー
マッパー
src/backend/api/online/mappers.py
class MovieMapper:
def __init__(self, obj):
self.obj = obj
def as_dict(self):
movie = self.obj
genres = [GenreMapper(movie_genre.genre).as_dict() for movie_genre in movie.movie_genres.all()]
return {
'movie_id': movie.movie_id,
'title': movie.title,
'year': movie.year,
'genres': genres,
'imdb_id': movie.imdb_id,
'tmdb_id': movie.tmdb_id,
}
class GenreMapper:
def __init__(self, obj):
self.obj = obj
def as_dict(self):
genre = self.obj
return {
'genre_id': genre.genre_id,
'genre_name': genre.genre_name,
}
クエリセット API
(recsys_full) backend$ python manage.py shell
from api.online.models import Movie, Genre
from api.online.mappers import MovieMapper
movie = Movie.objects.get(pk=1)
MovieMapper(movie).as_dict()
[Ctrl+D]
参考
- 横瀬明仁,『現場で使える Django の教科書《基礎編》』,2018.
- 4.3.3 モデルオブジェクトを dict に変換する