from django.shortcuts import render # from django.http.response import JsonResponse, HttpResponse import os import xmltodict import zipfile import xml.etree.ElementTree as ET from django.db import connection import io import json from dilicom.models import Article, Distributeur, Distribution,Contributeur, Participation from dilicom.models import Operation from dilicom.models import Collection from dilicom.models import Editeur from dilicom.models import Edition from ArticleIgescom.models import ArticleIgescom def testdilicom(request): if request.user.is_authenticated: articleigescom = ArticleIgescom.objects.all() article = Article.objects.all() editeur = Editeur.objects.all() operation = Operation.objects.all() distributeur = Distributeur.objects.all() collection =Collection.objects.all() contributeur =Contributeur.objects.all() dispo = connection.cursor() dispo.execute( "select count(*) as total_disponible from dilicom_article where disponibilite_article = 'Disponible'") disponible = dictfetchall(dispo) for element in disponible: total_disponible = element['total_disponible'] artigescom = articleigescom.count() artdilicom = article.count() editeur = editeur.count() operation = operation.count() distributeur = distributeur.count() collection = collection.count() contributeur = contributeur.count() context = { "artigescom": artigescom,"artdilicom":artdilicom, "editeur":editeur, "collection":collection,"distributeur":distributeur, "contributeur":contributeur,"disponible":total_disponible, "operation": operation} return render(request, 'Testdilicom/Tableau.html',context) else: return render(request, 'Errors/error_not_authenticated.html') def listTuto(request): articles =Article.objects.all() context = {"articles": articles} return render(request, 'Testdilicom/ListTutorial.html', context) def details(request, pk): article = Article.objects.get(id_article=pk) collect = connection.cursor() collect.execute("select dilicom_collection.nom_collection from dilicom_article,dilicom_collection " "where dilicom_article.id_collection_id = dilicom_collection.id_collection " "and dilicom_article.id_article="+ pk) collections = dictfetchall(collect) cursor = connection.cursor() cursor.execute( "select dilicom_participation.role,nom_contributeur from dilicom_participation, dilicom_article, dilicom_contributeur" " where dilicom_contributeur.id_contributeur = dilicom_participation.id_contributeur_id" " and dilicom_article.id_article = dilicom_participation.id_article_id " "and dilicom_participation.id_article_id =" + pk) auteurs = dictfetchall(cursor) edit = connection.cursor() edit.execute( "select dilicom_editeur.nom_editeur,dilicom_edition.date_edition from dilicom_edition, dilicom_article, dilicom_editeur" " where dilicom_editeur.id_editeur = dilicom_edition.id_editeur_id" " and dilicom_article.id_article = dilicom_edition.id_article_id " "and dilicom_edition.id_article_id =" + pk) editeurs = dictfetchall(edit) if article.poids_article == 0: poids= "Non précisé" else: poids = str(article.poids_article) +" g" if(article.disponibilite_article=="Disponible"): couleur = "label-light-success" else: couleur = "label-light-warning" context ={ "article":article, "couleur": couleur, "poids": poids,"editeurs":editeurs, "auteurs": auteurs,"collections":collections} return render(request, 'Testdilicom/detailsArticle.html',context) def dictfetchall(cursor): desc = cursor.description return [ dict(zip([col[0] for col in desc], row)) for row in cursor.fetchall() ] def listArticle(request): articles =Article.objects.all() context = {"articles": articles} return render(request, 'Testdilicom/ListTutorial.html', context) def lire_json(fichier_json): dilicom_code = "" dilicom_poids = 0 dilicom_nom = "" dilicom_text = "" dilicom_prix = 0 dilicom_ref ="" dilicom_date_edition = "" dilicom_date_fin_edition = "" with open(fichier_json) as data_ac: read_content = json.load(data_ac) quest = read_content['ONIXMessage'] root = quest['Product'] reussi = 0 for balises in root: # Recupération de la collection du livre collection = Collection() Dt = balises['DescriptiveDetail'] try: collections = Dt['Collection'] if isinstance(collections, dict): try: if collections['CollectionType'] == "11": titleDetail = collections['TitleDetail'] if isinstance(titleDetail, dict): if titleDetail['TitleType'] == "01": titleElement = titleDetail['TitleElement'] dilicom_collection = titleElement['TitleText'] elif titleDetail['TitleType'] == "05": titleElement = titleDetail['TitleElement'] dilicom_collection = titleElement['TitleText'] elif isinstance(titleDetail, list): for detail in titleDetail: if detail['TitleType'] == "01": titleElement = detail['TitleElement'] dilicom_collection = titleElement['TitleText'] elif detail['TitleType'] == "05": titleElement = detail['TitleElement'] dilicom_collection = titleElement['TitleText'] elif collections['CollectionType'] == "10": dilicom_collection = "Inconnu" except: dilicom_collection = "Inconnu" elif isinstance(collections, list): for collectionn in collections: try: if collectionn['CollectionType'] == "11": titleDetail = collectionn['TitleDetail'] if isinstance(titleDetail, dict): if titleDetail['TitleType'] == "01": titleElement = titleDetail['TitleElement'] dilicom_collection = titleElement['TitleText'] elif titleDetail['TitleType'] == "05": titleElement = titleDetail['TitleElement'] dilicom_collection = titleElement['TitleText'] elif isinstance(titleDetail, list): for detail in titleDetail: if detail['TitleType'] == "01": titleElement = detail['TitleElement'] dilicom_collection = titleElement['TitleText'] elif detail['TitleType'] == "05": titleElement = detail['TitleElement'] dilicom_collection = titleElement['TitleText'] elif collectionn['CollectionType'] == "10": dilicom_collection = "Inconnu" except: dilicom_collection = "Inconnu" except: dilicom_collection = "Inconnu" try: collection = Collection.objects.get(nom_collection = dilicom_collection) except Collection.DoesNotExist: collection.nom_collection =dilicom_collection collection.save() # Recupération du code ISBN pi = balises['ProductIdentifier'] if isinstance(pi, dict): if (pi['ProductIDType'] == "03"): dilicom_code = pi['IDValue'] elif (pi['ProductIDType'] == "15"): dilicom_code = pi['IDValue'] if isinstance(pi, list): for prodidtype in pi: if (prodidtype['ProductIDType'] == "03"): dilicom_code = prodidtype['IDValue'] elif (prodidtype['ProductIDType']== "15"): dilicom_code = prodidtype['IDValue'] # Recupération du poids de l'article try: Dt = balises['DescriptiveDetail'] mesure = Dt['Measure'] if isinstance(mesure, dict): if (mesure['MeasureType'] == "08"): dilicom_poids = mesure['Measurement'] elif isinstance(mesure, list): for element in mesure: if (element['MeasureType'] == "08"): dilicom_poids = element['Measurement'] except: dilicom_poids = 0 #Recupreration du nom de l'article titre = Dt['TitleDetail'] if isinstance(titre, dict): if (titre['TitleType'] == "05"): el = titre['TitleElement'] if isinstance(el['TitleText'], dict): dilicom_nom = el['TitleText']['#text'] else: dilicom_nom = el['TitleText'] elif (titre['TitleType'] == "01"): el = titre['TitleElement'] if isinstance(el['TitleText'], dict): dilicom_nom = el['TitleText']['#text'] else: dilicom_nom = el['TitleText'] elif (titre['TitleType'] == "10"): el = titre['TitleElement'] if isinstance(el['TitleText'], dict): dilicom_nom = el['TitleText']['#text'] else: dilicom_nom = el['TitleText'] elif isinstance(titre, list): for element in titre: if (element['TitleType'] == "05"): el = element['TitleElement'] if isinstance(el['TitleText'],dict): dilicom_nom = el['TitleText']['#text'] else: dilicom_nom = el['TitleText'] elif (element['TitleType'] == "01"): el = element['TitleElement'] if isinstance(el['TitleText'], dict): dilicom_nom = el['TitleText']['#text'] else: dilicom_nom = el['TitleText'] elif (element['TitleType'] == "10"): el = element['TitleElement'] if isinstance(el['TitleText'], dict): dilicom_nom = el['TitleText']['#text'] else: dilicom_nom = el['TitleText'] # recupération de la description du livre try: Collatdetail = balises['CollateralDetail'] try: Textcontent = Collatdetail['TextContent'] if isinstance(Textcontent, dict): descbalise = Textcontent['Text'] if isinstance(descbalise,dict): if (Textcontent['TextType'] == "05"): dilicom_text = descbalise['#text'] elif (Textcontent['TextType'] == "02"): dilicom_text = descbalise['#text'] elif (Textcontent['TextType'] == "03"): dilicom_text = descbalise['#text'] else: if (Textcontent['TextType'] == "05"): dilicom_text = Textcontent['Text'] elif (Textcontent['TextType'] == "02"): dilicom_text = Textcontent['Text'] elif (Textcontent['TextType'] == "03"): dilicom_text = Textcontent['Text'] elif isinstance(titre, list): for element in Textcontent: descbalise = element['Text'] if isinstance(descbalise, dict): if (element['TextType'] == "05"): dilicom_text = descbalise['#text'] elif (element['TextType'] == "02"): dilicom_text = descbalise['#text'] elif (element['TextType'] == "03"): dilicom_text = descbalise['#text'] else: if (element['TextType'] == "05"): dilicom_text = element['Text'] elif (element['TextType'] == "02"): dilicom_text = element['Text'] elif (element['TextType'] == "03"): dilicom_text = element['Text'] except: print("laclé n'existe pas") except: print("La clé n'existe pas") # Recupération du prix try: ProduitSupply = balises['ProductSupply'] if isinstance(ProduitSupply, dict): supplydetail = ProduitSupply['SupplyDetail'] try: prix = supplydetail['Price'] if isinstance(prix, dict): if (prix['PriceType'] == "04"): dilicom_prix = prix['PriceAmount'] elif (prix['PriceType'] == "01"): dilicom_prix = prix['PriceAmount'] elif isinstance(prix, list): for element in prix: if (element['PriceType'] == "04"): dilicom_prix = element['PriceAmount'] elif (element['PriceType'] == "01"): dilicom_prix = element['PriceAmount'] except: print("La clé n'existe pas") elif isinstance(ProduitSupply, list): for el in ProduitSupply: supplydetail = el['SupplyDetail'] try: prix = supplydetail['Price'] if isinstance(prix, dict): if (prix['PriceType'] == "04"): dilicom_prix = prix['PriceAmount'] elif (prix['PriceType'] == "01"): dilicom_prix = prix['PriceAmount'] elif isinstance(prix, list): for element in prix: if (element['PriceType'] == "04"): dilicom_prix = element['PriceAmount'] elif (element['PriceType'] == "01"): dilicom_prix = element['PriceAmount'] except: print("La clé n'existe pas") except: print("La clé n'existe pas") # Récupération de la réference dilicom du produit try: dilicom_ref = balises['RecordReference'] except: print("La clé n'existe pas") # Récupération de la disponibilité du produit try: ProduitSupply = balises['ProductSupply'] if isinstance(ProduitSupply, dict): supplydetail = ProduitSupply['SupplyDetail'] try: dispo = supplydetail['ProductAvailability'] if (dispo == "20"): dilicom_dispo = "Disponible" elif (dispo == "30"): dilicom_dispo = "Temporairement indisponible" elif (dispo == "32"): dilicom_dispo = "En réédition" else: dilicom_dispo = "Indisponible" except: print("La clé n'existe pas") elif isinstance(ProduitSupply, list): for el in ProduitSupply: supplydetail = el['SupplyDetail'] try: dispo = supplydetail['ProductAvailability'] if (dispo == "20"): dilicom_dispo = "Disponible" elif (dispo == "30"): dilicom_dispo = "Temporairement indisponible" elif (dispo == "32"): dilicom_dispo = "En réédition" else: dilicom_dispo = "Indisponible" except: print("La clé n'existe pas") except: print("La clé n'existe pas") try: article = Article.objects.get(ref_dilicom_article = dilicom_ref) except Article.DoesNotExist: article = Article() article.ref_dilicom_article = dilicom_ref article.description_article = dilicom_text article.nom_article= dilicom_nom article.prix_HT_article = float(dilicom_prix) article.code_EAN13_article = dilicom_code article.disponibilite_article = dilicom_dispo article.poids_article = float(dilicom_poids) article.id_collection_id = collection.id_collection article.save() reussi +=1 try: contributeurs = Dt['Contributor'] if isinstance(contributeurs, dict): contributeur = Contributeur() participation = Participation() try: dilicom_contrib = contributeurs['PersonName'] except: try: dilicom_contrib = contributeurs['KeyNames'] + " " + contributeurs['NamesBeforeKey'] except: dilicom_contrib = contributeurs['KeyNames'] try: contributeur = Contributeur.objects.get(nom_contributeur=dilicom_contrib) except Contributeur.DoesNotExist: contributeur.nom_contributeur = dilicom_contrib contributeur.save() try: role_id = contributeurs['ContributorRole'] if role_id == "A01": dilicom_role = "Auteur Principal" elif (role_id == "A38"): dilicom_role = "Auteur de la version originale" else: dilicom_role = "Auteur secondaire" try: participation = Participation.objects.get(id_article_id=article.id_article,id_contributeur_id=contributeur.id_contributeur) except Participation.DoesNotExist: participation.id_article_id = article.id_article participation.id_contributeur_id = contributeur.id_contributeur participation.role = dilicom_role participation.save() except: print("La clé n'existe pas") elif isinstance(contributeurs, list): for auteur in contributeurs: contributeur = Contributeur() participation = Participation() try: dilicom_contrib = auteur['PersonName'] except: try: dilicom_contrib = auteur['KeyNames'] + " " + auteur['NamesBeforeKey'] except: dilicom_contrib = auteur['KeyNames'] try: contributeur = Contributeur.objects.get(nom_contributeur=dilicom_contrib) except Contributeur.DoesNotExist: contributeur.nom_contributeur = dilicom_contrib contributeur.save() try: role_id = auteur['ContributorRole'] if role_id == "A01": dilicom_role = "Auteur Principal" elif (role_id == "A38"): dilicom_role = "Auteur de la version originale" else: dilicom_role = "Auteur secondaire" try: participation = Participation.objects.get(id_article_id=article.id_article, id_contributeur_id=contributeur.id_contributeur) except Participation.DoesNotExist: participation.id_article_id = article.id_article participation.id_contributeur_id = contributeur.id_contributeur participation.role = dilicom_role participation.save() except: print("La clé n'existe pas") except: dilicom_contrib = "Inconnu" try: contributeur = Contributeur.objects.get(nom_contributeur=dilicom_contrib) except Contributeur.DoesNotExist: contributeur.nom_contributeur = dilicom_contrib contributeur.save() # Creation de l'editeur et l'edition Pd = balises['PublishingDetail'] try: imprint = Pd['Imprint'] if isinstance(imprint, dict): editeur = Editeur() edition = Edition() imName = imprint['ImprintName'] dilicom_editeur = imName['#text'] try: editeur = Editeur.objects.get(nom_editeur=dilicom_editeur) except Editeur.DoesNotExist: editeur.nom_editeur = dilicom_editeur editeur.save() try: pubdate = Pd['PublishingDate'] if isinstance(pubdate, dict): try: if pubdate['PublishingDateRole'] == '01': date = pubdate['Date'] if isinstance(date, dict): dilicom_date_edition = date['#text'] else: dilicom_date_edition = date try: edition = Edition.objects.get(id_article_id=article.id_article, id_editeur_id=editeur.id_editeur) except Edition.DoesNotExist: edition.id_article_id = article.id_article edition.id_editeur_id = editeur.id_editeur edition.date_edition = dilicom_date_edition edition.date_fin_edition = "" edition.save() if pubdate['PublishingDateRole'] == '13': date = pubdate['Date'] if isinstance(date, dict): dilicom_date_fin_edition = date['#text'] else: dilicom_date_fin_edition = date try: edition = Edition.objects.get(id_article_id=article.id_article, id_editeur_id=editeur.id_editeur) except Edition.DoesNotExist: edition.id_article_id = article.id_article edition.id_editeur_id = editeur.id_editeur edition.date_edition = "" edition.date_fin_edition = dilicom_date_fin_edition edition.save() except: print("la clé n'a pas été trouvée") elif isinstance(pubdate, list): for pubdates in pubdate: if pubdates['PublishingDateRole'] == '01': date = pubdates['Date'] if isinstance(date, dict): dilicom_date_edition = date['#text'] else: dilicom_date_edition = date if pubdates['PublishingDateRole'] == '13': date = pubdates['Date'] if isinstance(date, dict): dilicom_date_fin_edition = date['#text'] else: dilicom_date_fin_edition = date try: edition = Edition.objects.get(id_article_id=article.id_article, id_editeur_id=editeur.id_editeur) except Edition.DoesNotExist: edition.id_article_id = article.id_article edition.id_editeur_id = editeur.id_editeur edition.date_edition = dilicom_date_edition edition.date_fin_edition = dilicom_date_fin_edition edition.save() except: print("la clé n'a pas été trouvée") except: print("la clé n'a pas été trouvée") Ps = balises['ProductSupply'] if isinstance(Ps, dict): distributeur = Distributeur() distribution = Distribution() try: supdetail = Ps['SupplyDetail'] try: supplier = supdetail['Supplier'] suppliername = supplier['SupplierName'] dilicom_distributeur = suppliername['#text'] try: distributeur = Distributeur.objects.get(nom_distrib=dilicom_distributeur) except Distributeur.DoesNotExist: distributeur.nom_distrib = dilicom_distributeur distributeur.save() try: distribution = Distribution.objects.get(id_article_id=article.id_article, id_distrib_id=distributeur.id_distrib) except Distribution.DoesNotExist: distribution.id_article_id = article.id_article distribution.id_distrib_id = distributeur.id_distrib if dilicom_dispo == "Disponible": distribution.statut_dist = "Actif" else: distribution.statut_dist = "Inactif" distribution.save() except: print("La clé est introuvable") except: print("la clé est introuvable") elif isinstance(Ps, list): for element in Ps: try: supdetail = element['SupplyDetail'] try: supplier = supdetail['Supplier'] suppliername = supplier['SupplierName'] dilicom_distributeur = suppliername['#text'] try: distributeur = Distributeur.objects.get(nom_distrib=dilicom_distributeur) except Distributeur.DoesNotExist: distributeur.nom_distrib = dilicom_distributeur distributeur.save() try: distribution = Distribution.objects.get(id_article_id=article.id_article, id_distrib_id=distributeur.id_distrib) except Distribution.DoesNotExist: distribution.id_article_id = article.id_article distribution.id_distrib_id = distributeur.id_distrib if dilicom_dispo == "Disponible": distribution.statut_dist = "Actif" else: distribution.statut_dist = "Inactif" distribution.save() except: print("La clé est introuvable") except: print("la clé est introuvable") dilicom_text = "" dilicom_prix = 0 dilicom_nom = "" dilicom_ref = "" dilicom_dispo = "" dilicom_poids= 0 dilicom_code = "" data = Article.objects.all() datas = {"data":data,"reussi": reussi} return datas def unzipe(path): files = os.listdir(path) for file in files: # Rechercher tous les fichiers avec l'extension .zip dans le chemin if file.endswith('.zip'): filepath = path + '/' + file zip_file = zipfile.ZipFile(filepath) # Rechercher tous les fichiers avec l'extension .xml dans le chemin for names in zip_file.namelist(): if names.endswith('.xml'): fichiers = zip_file.extract(names, path) with open(fichiers,encoding='utf-8') as xml_file: data_dict = xmltodict.parse(xml_file.read()) # xml_file.close() # generate the object using json.dumps() # corresponding to json data json_data = json.dumps(data_dict, indent=4) # Write the json data to output # json file with open("data.json", "w", encoding='utf-8') as json_file: json_file.write(json_data) context = lire_json("data.json") return context def affiche_json(request): if request.user.is_authenticated: mydata = unzipe("C:\\Users\\HP\Desktop\\Testzip") # files = os.listdir("C:\\Users\\HP\Desktop\\Testzip") # for file in files: # if file.endswith('.zip'): # os.remove("C:\\Users\\HP\Desktop\\Testzip" + "\\" + file) operation = Operation() operation.utilisateur = request.user.username operation.save() context = {"articles": mydata['data'],"reussi": mydata['reussi']} return render(request, 'Testdilicom/dilicom.html', context) else: return render(request, 'Errors/error_not_authenticated.html') def export_unique(request, pk): artigescom = ArticleIgescom() article = Article.objects.get(id_article=pk) try: artigescom = ArticleIgescom.objects.get(ref_dilicom_article = article.ref_dilicom_article) message = "l'export a échoué. Verifier que l'article n'est pas déja exporté" reussite = False cursor = connection.cursor() cursor.execute( "select dilicom_participation.role,nom_contributeur from dilicom_participation, dilicom_article, dilicom_contributeur" " where dilicom_contributeur.id_contributeur = dilicom_participation.id_contributeur_id" " and dilicom_article.id_article = dilicom_participation.id_article_id " "and dilicom_participation.id_article_id =" + pk) auteurs = dictfetchall(cursor) edit = connection.cursor() edit.execute( "select dilicom_editeur.nom_editeur,dilicom_edition.date_edition from dilicom_edition, dilicom_article, dilicom_editeur" " where dilicom_editeur.id_editeur = dilicom_edition.id_editeur_id" " and dilicom_article.id_article = dilicom_edition.id_article_id " "and dilicom_edition.id_article_id =" + pk) editeurs = dictfetchall(edit) distcurs = connection.cursor() distcurs.execute( "select dilicom_distributeur.nom_distrib from dilicom_distribution, dilicom_article, dilicom_distributeur" " where dilicom_distributeur.id_distrib = dilicom_distribution.id_distrib_id" " and dilicom_article.id_article = dilicom_edition.id_article_id " "and dilicom_edition.id_article_id =" + pk) if article.poids_article == 0: poids = "Non précisé" else: poids = str(article.poids_article) + " g" # if (article.disponibilite_article == "Disponible"): # couleur = "label-light-success" # else: # couleur = "label-light-warning" if (article.disponibilite_article == "Disponible"): couleur = "label-light-success" else: couleur = "label-light-warning" context = {"message": message, "reussite": reussite,"article":article,"couleur": couleur,"poids":poids,"editeurs":editeurs, "auteurs": auteurs} return render(request, 'Testdilicom/testexport.html', context) except ArticleIgescom.DoesNotExist: artigescom.poids_article = article.poids_article artigescom.disponibilite_article = article.disponibilite_article artigescom.ref_dilicom_article = article.ref_dilicom_article artigescom.nom_article = article.nom_article artigescom.code_EAN13_article = article.code_EAN13_article artigescom.description_article = article.description_article artigescom.collection_article = "" artigescom.prix_HT_dilicom = article.prix_HT_article collect = connection.cursor() collect.execute("select dilicom_collection.nom_collection from dilicom_article,dilicom_collection " "where dilicom_article.id_collection_id = dilicom_collection.id_collection " "and dilicom_article.id_article=" + pk) collections = dictfetchall(collect) for collection in collections: collect_aticle = collection['nom_collection'] artigescom.collection_article = collect_aticle artigescom.save() cursor = connection.cursor() cursor.execute( "select dilicom_participation.role,nom_contributeur from dilicom_participation, dilicom_article, dilicom_contributeur" " where dilicom_contributeur.id_contributeur = dilicom_participation.id_contributeur_id" " and dilicom_article.id_article = dilicom_participation.id_article_id " "and dilicom_participation.id_article_id =" + pk) auteurs = dictfetchall(cursor) edit = connection.cursor() edit.execute( "select dilicom_editeur.nom_editeur,dilicom_edition.date_edition from dilicom_edition, dilicom_article, dilicom_editeur" " where dilicom_editeur.id_editeur = dilicom_edition.id_editeur_id" " and dilicom_article.id_article = dilicom_edition.id_article_id " "and dilicom_edition.id_article_id =" + pk) editeurs = dictfetchall(edit) if article.poids_article == 0: poids = "Non précisé" else: poids = str(article.poids_article) + " g" # if (article.disponibilite_article == "Disponible"): # couleur = "label-light-success" # else: # couleur = "label-light-warning" if (article.disponibilite_article == "Disponible"): couleur = "label-light-success" else: couleur = "label-light-warning" message = "l'export a réussi" reussite = True context = {"message": message, "reussite":reussite,"collections":collections,"article":article,"couleur": couleur,"poids":poids,"editeurs":editeurs, "auteurs": auteurs} return render(request, 'Testdilicom/testexport.html',context) def export_masse(request): data = Article.objects.all() compte = 0 for article in data: artigescom = ArticleIgescom() try: artigescom = ArticleIgescom.objects.get(ref_dilicom_article=article.ref_dilicom_article) except ArticleIgescom.DoesNotExist: artigescom.poids_article = article.poids_article artigescom.disponibilite_article = article.disponibilite_article artigescom.ref_dilicom_article = article.ref_dilicom_article artigescom.nom_article = article.nom_article artigescom.code_EAN13_article = article.code_EAN13_article artigescom.description_article = article.description_article artigescom.collection_article = "" artigescom.prix_HT_dilicom = article.prix_HT_article artigescom.save() compte +=1 article_dilicom = Article.objects.all() context = {"compte":compte, "article_dilicom":article_dilicom} return render(request, 'Testdilicom/masseexport.html', context)