Ejemplo n.º 1
0
 def fill_item_genre(self, objects, items, genres):
     """
     Fill item genres connection
     :param items:
     :param genres:
     :return:
     """
     query_item_genres = Q()
     item_genres = {}
     for json_item in objects:
         json_genres = json_item.get(self.item_genres_field, None) or ()
         for json_genre in json_genres:
             query_item_genres = \
                 query_item_genres | Q(item_id=items[json_item[self.item_field]].pk, type_id=genres[json_genre].pk)
             item_genres[(items[json_item[self.item_field]].pk, genres[json_genre].pk)] = \
                 ItemGenre(item=items[json_item[self.item_field]], type=genres[json_genre])
     if len(query_item_genres) > 0:
         for item_genre in ItemGenre.objects.filter(query_item_genres):
             del item_genres[item_genre.item_id, item_genre.type_id]
     ItemGenre.objects.bulk_create(item_genres.values())