Creation d'un module - Patix - 30-10-2020
Bonjour,
J'ai commencé à utiliser votre doc pour créer un module mais je suis bloqué sur une commande.
Code : v:\Python\creme2>python manage.py makemigrations editors
File "v:\Python\creme2\creme\editors\models\__init__.py", line 3, in <module>
from editor import Editor
ModuleNotFoundError: No module named 'editor'
ou
cd
Code : v:\Python\creme2\creme>python manage.py makemigrations editors
python: can't open file 'manage.py': [Errno 2] No such file or directory
J'ai essayé en essayant la casse avec le 'E' majuscule, j'ai le même problème
Code : ma structure creme2-I
I --- creme I
I
I --- editors I __init__.py
I --- models I __init__.py
I editor.py
je tourne en rond.
RE: Creation d'un module - Patix - 01-11-2020
Bon j'ai beau retourner le problème je ne comprends pas pourquoi le module n'est pas trouvé !!
Code : (pjt_creme2) v:\Python\creme2>python v:\Python\creme2\manage.py makemigrations editors
Traceback (most recent call last):
File "v:\Python\creme2\manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "V:\Python\pjt_creme2\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line
utility.execute()
File "V:\Python\pjt_creme2\lib\site-packages\django\core\management\__init__.py", line 357, in execute
django.setup()
File "V:\Python\pjt_creme2\lib\site-packages\django\__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "v:\Python\creme2\creme\__init__.py", line 23, in _hooked_populate
_original_populate(self, installed_apps)
File "V:\Python\pjt_creme2\lib\site-packages\django\apps\registry.py", line 114, in populate
app_config.import_models()
File "V:\Python\pjt_creme2\lib\site-packages\django\apps\config.py", line 211, in import_models
self.models_module = import_module(models_module_name)
File "V:\Python\pjt_creme2\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "v:\Python\creme2\creme\editors\models\__init__.py", line 3, in <module>
from editor import Editor
ModuleNotFoundError: No module named 'editor'
Une autre question se pose :
si j'utilise la commande "django-admin startapp" le dossier créé contient models.py et non un dossier "models" comme indiquer dans l'exemple de création (castors / beavers). Pourquoi ?
RE: Creation d'un module - Patix - 01-11-2020
Peut-être une erreur dans project_settings.py
Code : # -*- coding: utf-8 -*-
# Here we declare project specific settings which need to be versionned.
# For example
#
# from .settings import INSTALLED_CREME_APPS
# PROJECT_APPS = 'custom_persons',
# PROJECT_APPS = 'editors',
# INSTALLED_CREME_APPS = INSTALLED_CREME_APPS + PROJECT_APPS
# PERSONS_CONTACT_MODEL = 'custom_persons.CustomContact'
INSTALLED_CREME_APPS = [
# CREME CORE APPS
'creme.creme_core',
'creme.creme_config',
'creme.documents',
'creme.activities', # Extra features if 'assistants' is installed.
'creme.persons',
# CREME OPTIONAL APPS (can be safely commented)
'creme.assistants',
'creme.graphs',
'creme.reports',
'creme.products',
'creme.recurrents',
'creme.billing', # Need 'products'
'creme.opportunities', # Need 'products'. Extra features if 'billing' is installed.
'creme.commercial', # Need 'opportunities'
'creme.events', # Need 'opportunities'
'creme.crudity',
'creme.emails', # Extra features if 'crudity' is installed.
# 'creme.sms', # Work In Progress
'creme.projects',
'creme.tickets',
# 'creme.cti',
# 'creme.activesync', # NOT AVAILABLE ANY MORE
'creme.vcfs',
# 'creme.polls', # Need 'commercial'
# 'creme.mobile',
'creme.geolocation',
'creme.editors', # NOUVEAU MODULE pour les articles
]
RE: Creation d'un module - Patix - 01-11-2020
Bonsoir,
J'ai trouvé le problème !!!!
Dans la doc du castor/beaver
Code : Extrait documentation
Là encore, pour que le répertoire models/ soit un module, nous devons y mettre un second fichier nommé __init__.py, et qui contient :
# -*- coding: utf-8 -*-
from beaver import Beaver
il faut mettre : (une petit point en plus)
from .beaver import Beaver
RE: Creation d'un module - Patix - 02-11-2020
Bonjour,
Je continue dans la création du module en suivant les directives de la doc exemple et j'ai ce souci en lançant le serveur
Code : File "v:\Python\creme2\creme\editors\urls.py", line 11, in <module>
re_path(r'^editors[/]?$', editor.ListView, name='editors__list_editors'),
AttributeError: module 'creme.editors.views.editor' has no attribute 'ListView'
J'ai dans editor
Code : # -*- coding: utf-8 -*-
from creme.creme_core.views import generic
from creme.editors.models import Editor
from ..forms.editor import EditorForm
class EditorsList(generic.EntitiesList):
model = Editor
class EditorCreation(generic.EntityCreation):
model = Editor
form_class = EditorForm
class EditorDetail(generic.EntityDetail):
model = Editor
pk_url_kwarg = 'editor_id'
class EditorEdition(generic.EntityEdition):
model = Editor
form_class = EditorForm
pk_url_kwarg = 'editor_id'
mon urls.py
Code : # -*- coding: utf-8 -*-
from django.urls import re_path
from .views import editor
urlpatterns = [
re_path(r'^editors[/]?$', editor.EditorsList.as_view(), name='editors__list_editors'),
]
urlpatterns = [
re_path(r'^editors[/]?$', editor.ListView, name='editors__list_editors'),
re_path(r'^editor/add[/]?$', editor.EditorCreation.as_view(), name='editors__create_editor'),
re_path(r'^beaver/edit/(?P<beaver_id>\d+)[/]?$', editor.EditorEdition.as_view(), name='editors__edit_editor'),
re_path(r'^editor/(?P<beaver_id>\d+)[/]?$', editor.EditorDetail.as_view(), name='editors__view_editor'),
]
urlpatterns = [
re_path(r'^editors[/]?$', editor.listview, name='editor'),
re_path(r'^editor/add[/]?$', editor.EditorCreation.as_view(), name='editor'),
]
Qu'est ce que j'ai oublié ?
RE: [Résolu]Creation d'un module - genglert - 02-11-2020
Citation :si j'utilise la commande "django-admin startapp" le dossier créé contient models.py et non un dossier "models" comme indiquer dans l'exemple de création (castors / beavers). Pourquoi ?
Souvent on commence avec juste un fichier models.py, et quand/si il devient trop gros on finit par le découper. Mais c'est pareil au final.
Citation :il faut mettre : (une petit point en plus)
Merci pour le retour ; j'ai corrigé ça, ainsi que d'autres erreurs du même genre (il y a le même problème avec "status") ; ça sera dans la prochaine version. Si vous voulez votre nom dans la section errata de la documentation c'est le moment de demander.
Bon courage pour la suite !
RE: [Résolu]Creation d'un module - Patix - 02-11-2020
(02-11-2020, 15:33)genglert a écrit : Citation :si j'utilise la commande "django-admin startapp" le dossier créé contient models.py et non un dossier "models" comme indiquer dans l'exemple de création (castors / beavers). Pourquoi ?
Souvent on commence avec juste un fichier models.py, et quand/si il devient trop gros on finit par le découper. Mais c'est pareil au final.
Citation :il faut mettre : (une petit point en plus)
Merci pour le retour ; j'ai corrigé ça, ainsi que d'autres erreurs du même genre (il y a le même problème avec "status") ; ça sera dans la prochaine version. Si vous voulez votre nom dans la section errata de la documentation c'est le moment de demander.
Bon courage pour la suite !
Pourquoi pas pour nom dans la section errata
Je continue à suivre les instructions de la création d'un module
RE: Creation d'un module - genglert - 02-11-2020
Citation :Pourquoi pas pour nom dans la section errata
Dites-moi ce que je mets, sinon ça sera juste "Patix".
RE: Creation d'un module - Patix - 02-11-2020
(02-11-2020, 17:02)genglert a écrit : Citation :Pourquoi pas pour nom dans la section errata
Dites-moi ce que je mets, sinon ça sera juste "Patix".
Patix, c'est très bien.
Avez vous une idée pour m'aiguiller pour ce message ?
"AttributeError: module 'creme.editors.views.editor' has no attribute 'ListView'"
editor remplace beaver
RE: Creation d'un module - genglert - 02-11-2020
N'hésitez pas à :
- activer le mode debug dans votre local_settings.py pendant le développement avec ''DEBUG = True".
- installer ipython puis jouer avec la console (python manage.py shell) pour tester des choses.
- installer un IDE qui vous aidera à trouver des erreurs avant l'exécution (PyCharm version communautaire dans mon cas).
|