2012-05-10 20 views
0

我想在這裏遵循的步驟時出錯:Django的:嘗試添加新的應用程序

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服務器不啓動。我做錯什麼了嗎?

回答

1

Django應用程序應該(至少)一個目錄__init__.pymodels.py文件。因此,創建mycomments dir,將代碼放在__init__.py中,並在其中添加空的models.py

+0

謝謝!這解決了這個問題。因此,在本教程中給出的示例中,作者是否創建了一個名爲「firefly」的dir,並將其代碼放入該目錄中名爲「my_comments.py」的文件中,並將其__init__.py文件留空? – GChorn

+0

@GChorn是的,我認爲是。 – DrTyrsa

相關問題