Creation d'un module
#1
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. Dodgy
  Répondre
#2
Photo 
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 ?
  Répondre
#3
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
]
  Répondre
#4
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
  Répondre
#5
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é ?
  Répondre
#6
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 !
  Répondre
#7
(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 Smile pour nom dans la section errata

Je continue à suivre les instructions de la création d'un module
  Répondre
#8
Citation :Pourquoi pas [Image: smile.png] pour nom dans la section errata

Dites-moi ce que je mets, sinon ça sera juste "Patix".
  Répondre
#9
(02-11-2020, 17:02)genglert a écrit :
Citation :Pourquoi pas [Image: smile.png] 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
  Répondre
#10
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).
  Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 4 visiteur(s)