Я пытаюсь выполнить действия, описанные здесь:Джанго: Ошибка при попытке добавить новое приложение
http://dev.svetlyak.ru/optional-email-in-django-comments-en/
, чтобы сделать поле «Адрес электронной почты» в комментариях приложении Django необязательным. В частности, я создал файл с именем «mycomments.py» со следующим содержимым:
from django import forms
from django.contrib.comments.forms import CommentDetailsForm
from django.utils.translation import ungettext, ugettext_lazy as _
class CommentForm(CommentDetailsForm):
email = forms.EmailField(label=_("Email address"), required=False)
def get_form():
return CommentForm
И положил его в корневой папке для моего проекта Django (в ту же папку, которая содержит manage.py и settings.py). Затем я добавил 'mycomments' в файл settings.py следующим образом:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.comments',
'blogs',
'mycomments',
)
COMMENTS_APP = 'mycomments'
Но тогда, когда я 'питона manage.py runserver', я получаю следующее сообщение об ошибке:
Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib.staticfiles.management.commands.runserver.Command object at 0x8bb208c>>
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 88, in inner_run
self.validate(display_num_errors=True)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 249, in validate
num_errors = get_validation_errors(s, app)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/validation.py", line 35, in get_validation_errors
for (app_name, error) in get_app_errors().items():
File "/usr/local/lib/python2.7/dist-packages/django/db/models/loading.py", line 146, in get_app_errors
self._populate()
File "/usr/local/lib/python2.7/dist-packages/django/db/models/loading.py", line 61, in _populate
self.load_app(app_name, True)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/loading.py", line 83, in load_app
if not module_has_submodule(app_module, 'models'):
File "/usr/local/lib/python2.7/dist-packages/django/utils/module_loading.py", line 17, in module_has_submodule
for entry in package.__path__: # No __path__, then not a package.
AttributeError: 'module' object has no attribute '__path__'
И сервер dev не запускается. Я сделал что-то не так?
Спасибо! Это решило проблему. Итак, в примере, приведенном в учебнике, к которому я привязался, автор просто создал dir с именем «firefly» и поместил свой код в файл с именем «my_comments.py» внутри этого каталога и оставил свой файл __init__.py пустым? – GChorn
@GChorn Да, я так думаю. – DrTyrsa