Example #1
0
    def handle(self, *args, **kwargs):
        diretory = os.path.join(os.path.dirname(__file__),
                                '../../../feedeasyform_project/assets/')
        csvfile_path = diretory + 'table_ingredients.csv'

        try:
            with open(csvfile_path, newline='') as csvfile:
                foods = csv.DictReader(csvfile)

                for food in foods:
                    name_grp_parsed = food['alim_grp_nom_fr'].replace(
                        ' et ', ' & ')
                    try:
                        group = FoodGroup.objects.get(name=name_grp_parsed)

                    except ObjectDoesNotExist:
                        group = FoodGroup()
                        group.name = name_grp_parsed
                        group.save()

                    name_food_parsed = food['alim_nom_fr'].replace(
                        ' et ', ' & ')
                    new_food = Food()
                    new_food.name = name_food_parsed
                    new_food.id_group = group
                    new_food.food_code = food["alim_code"]
                    new_food.proteine = food["Protéines (g/100g)"]
                    new_food.glucide = food["Glucides (g/100g)"]
                    new_food.lipide = food["Lipides (g/100g)"]
                    new_food.sucre = food["Sucres (g/100g)"]
                    new_food.fibre = food["Fibres alimentaires (g/100g)"]
                    new_food.acide_gras_sature = food["AG saturés (g/100g)"]
                    new_food.cholesterol = food["Cholestérol (mg/100g)"]
                    new_food.sel_chlorure_de_sodium = food[
                        "Sel chlorure de sodium (g/100g)"]
                    new_food.calcium = food["Calcium (mg/100g)"]
                    new_food.fer = food["Fer (mg/100g)"]
                    new_food.magnesium = food["Magnésium (mg/100g)"]
                    new_food.potassium = food["Potassium (mg/100g)"]
                    new_food.zinc = food["Zinc (mg/100g)"]
                    new_food.vitamine_c = food["Vitamine C (mg/100g)"]
                    new_food.vitamine_d = food["Vitamine D (µg/100g)"]
                    new_food.vitamine_e = food["Vitamine E (mg/100g)"]
                    new_food.energie = food["Energie (kcal/100g)"]
                    new_food.save()

                    if kwargs['verbose']:
                        self.stdout.write(
                            f"{self.style.SUCCESS(name_food_parsed)} ajouté à la base de données"
                        )
        except:
            self.stderr.write(
                self.style.ERROR('Une erreur est survenu. \
\nIl est possible que les ingrédients existe déjà dans la base de données.'))