Bonjour,

J'essaie de charger des données via un script dans la base de données de mon appli Django.

Dans models.py, je crée un modèle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class myModel(models.Model):
    name = models.CharField(max_length=25)
    definition = models.CharField(max_length=120)
    code = models.CharField(primary_key=True, max_length=25)
    sourceIdentifier = models.IntegerField()
    definitionSource = models.CharField(max_length=10)
 
    objects = models.Manager()
 
    class Meta:
        pass
 
    def __str__(self):
        return self.name
Je lance toutes les instructions migrate pour crée la base, ça c'est OK.

Je crée un module importData.py, que je met au même niveau dans l'arborescence que models.py, dans lequel j'ai une fonction de lecture d'un fichier csv pour chargement dans la base

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from models import myModel
import csv
 
def import_to_model(file_path):
 
    with open(file_path, 'r') as file:
        reader = csv.DictReader(file)
        for row in reader:
            myModel.objects.create(
                name=row['name'],
                definition=row['definition'],
                code=row['code'],
                sourceIdentifier=row['sourceIdentifier'],
                definitionSource=row['definitionSource']
            )
 
 
if __name__ == '__main__':
    csv_file_path = 'path/to/csv/fichier.csv'
    import_to_model(csv_file_path)
Quand je lance l'exécution, j'ai l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
J'ai bien mon fichier settings.py dans le répertoire du projet, et la base de données est bien créée, alors, qu'est ce qui cloche?

Merci,
Nico