Salut
Voici la strucutre de mon projet :

voici le fichier forms.py que j'essaie de tester :

et quand je fais dans le terminal :
python webjeanfi/forms.py
(.env) jeanfi_laptop% ls
accounts budget db.sqlite3 manage.py requirements.txt templates webjeanfi
(.env) jeanfi_laptop% python webjeanfi/forms.py
Traceback (most recent call last):
File "/home/jeanfi/code/django0000/webjeanfi/forms.py", line 2, in <module>
from budget.models import BudgetReal
ModuleNotFoundError: No module named 'budget'
(.env) jeanfi_laptop% </module>
j'ai essayé dans forms.py également en ligne 2 =>

</module>
Salut Jean-Philippe !
Alors il y a plusieurs choses à noter ici.
Tu as un problème de chemin d'importation dans ton projet Django. Quand tu essaies d'exécuter le fichier forms.py tout seul, Python tente de trouver le module budget.models, mais étant donné qu'il n'est pas lancé dans le contexte de Django, il ne sait pas où chercher et ne trouve donc pas le module.
Généralement, on ne lance pas les fichiers individuellement comme tu le fais avec python webjeanfi/forms.py dans un projet Django. À la place on utilise la commande manage.py pour exécuter des tâches comme lancer le serveur de développement ou créer des migrations. Si tu veux exécuter un script qui utilise des parties de ton application Django (comme des modèles dans budget.models), c'est possible, mais tu dois te débrouiller pour que ton script soit exécuté dans le contexte de Django.
Pour tester ton fichier forms.py, tu devrais plutôt le faire via une vue Django, ou tu peux aussi écrire un script de commande Django que tu peux exécuter avec manage.py.
Si tu souhaites vraiment lancer un script dans le contexte de Django, tu peux charger l'environnement de cette façon :
import os
import django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "monprojet.settings") # Remplace 'monprojet.settings' par le nom de ton projet.
django.setup()
# Ton code ici, par exemple pour tester tes forms
from webjeanfi.forms import MovementForm
Mais encore ce n'est pas la manière standard de tester des éléments dans un projet Django. Tu devrais soit utiliser des tests Django avec manage.py test, des scripts de commandes ou interagir avec tes forms via l'interface web ou encore la console Django avec python manage.py shell si tu souhaites tester quelques lignes de code. Et si tu veux faire un test plus conséquent avec tes modèles par exemple sans le faire ligne par ligne dans le shell, alors tu peux utiliser la méthode rapide avec les quelques lignes ci-dessus pour charger l'environnement de Django.
Quel est ton objectif ici pour le test de tes formulaires, que souhaite-tu tester ?
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte

