def update(self, instance, validated_data): instance.name = validated_data.get('name', instance.name) instance.popularity_99 = validated_data.get('popularity_99', instance.popularity_99) instance.imdb_score = validated_data.get('imdb_score', instance.imdb_score) instance.director = validated_data.get('director', instance.director) # update genre # print genre # print validated_data if "genre" in validated_data and isinstance(validated_data["genre"], list): instance.genre = [] for genre in validated_data['genre']: # print genre exists, obj = Genre.name_exists(genre) if exists: instance.genre.add(obj) else: serializer = GenreSerializer(data={"name": genre}) if serializer.is_valid(): obj = serializer.save() instance.genre.add(obj) else: raise exceptions.ValidationError({ "success": False, "error": { "slug_errors": [ "There is a movie with same slug so choose different name" ] } }) return instance
def create(self, validated_data): new_movie = Movie(name=validated_data['name'], director=validated_data['director'], popularity_99=validated_data['popularity_99'], imdb_score=validated_data['imdb_score']) new_movie.save() # add genre # print genre # print validated_data # print isinstance(validated_data["genre"],list) if "genre" in validated_data and isinstance(validated_data["genre"], list): for genre in validated_data['genre']: # print 'the genre is',genre exists, obj = Genre.name_exists(genre) # print obj # print exists if exists: new_movie.genre.add(obj) # print '==================================== ' serializer = GenreSerializer(data={"name": genre}) if serializer.is_valid(): obj = serializer.save() new_movie.genre.add(obj) return new_movie