私は使用しようとしているdjangoアプリdjango-taggit
とzinniaブログを持っています。以下は私の設定とコードです
ディレクトリ構造
test_app
apps
app_one
__init__.py
views.py
forms.py
urls.py
models
taggit_custom.py
app_two
settings
local_settings.py
manage.py
local_settings.py
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'south',
'taggit',
'zinnia',
)
taggit_custom.py
from django.db import models
from django.contrib.contenttypes.models import ContentType
from django.conf import settings
from taggit.models import TaggedItem
class CustomModel_one(models.Model):
......
......
上記から、私はdjango-zinnia-blog
自分のサイトをブログとして使用しようとしていますが、django-taggit
代わりに使用したいのですが、使用tagging
しようとしただけなtaggit
ので、taggitをインストールしましたpip install django-taggit
しかし、上記のようにtaggitアプリケーションを使用しようとするとfrom taggit.models import TaggedItem
、以下のエラーが表示されます
注:実際、taggit モジュールからのインポートはありません。
from taggit.models import TaggedItem
from taggit.managers import TaggableManager
from taggit.forms........ etc.,
アプリケーションがインストールされていても動作しています(pip freeze
taggitもチェックされています:))
結果
Validating models...
Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib.staticfiles.management.commands.runserver.Command object at 0x9902e8c>>
Traceback (most recent call last):
File "/home/user/Envs/zinnia/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 92, in inner_run
self.validate(display_num_errors=True
......
......
File "/home/user/name/virtualenvironment/apps/test_app/models/taggit_custom.py", line 4, in <module>
from taggit.models import TaggedItem
ImportError: No module named models
taggit がインストールされているにもかかわらず、taggit のインポートが機能しない理由を教えてください。
編集済み
また、以下のようなことを試したとき
(仮想環境内)
import taggit
print dir(taggit.models)
結果
['Aggregate', 'AutoField', 'Avg', 'BLANK_CHOICE_DASH', 'BLANK_CHOICE_NONE', 'BigIntegerField', 'BooleanField', 'CASCADE', 'CharField', 'CommaSeparatedIntegerField', 'Count', 'DO_NOTHING', 'DateField', 'DateTimeField', 'DecimalField', 'DictWrapper', 'EmailField', 'F', 'Field', 'FieldDoesNotExist', 'FileField', 'FilePathField', 'FloatField', 'ForeignKey', 'GenericIPAddressField', 'IPAddressField', 'ImageField', 'ImproperlyConfigured', 'IntegerField', 'Manager', 'ManyToManyField', 'ManyToManyRel', 'ManyToOneRel', 'Max', 'Min', 'Model', 'NOT_PROVIDED', 'NullBooleanField', 'ObjectDoesNotExist', 'OneToOneField', 'OneToOneRel', 'PROTECT', 'PositiveIntegerField', 'PositiveSmallIntegerField', 'ProtectedError', 'Q', 'QueryWrapper', 'SET', 'SET_DEFAULT', 'SET_NULL', 'SlugField', 'SmallIntegerField', 'StdDev', 'SubfieldBase', 'Sum', 'TextField', 'TimeField', 'URLField', 'Variance', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'aggregates', 'base', 'capfirst', 'clean_ipv6_address', 'connection', 'constants', 'copy', 'curry', 'datetime', 'decimal', 'deletion', 'exceptions', 'expressions', 'fields', 'force_text', 'forms', 'get_app', 'get_apps', 'get_model', 'get_models', 'is_iterator', 'loading', 'manager', 'math', 'options', 'parse_date', 'parse_datetime', 'parse_time', 'permalink', 'proxy', 'query', 'query_utils', 'register_models', 'related', 'settings', 'signals', 'six', 'smart_text', 'sql', 'tee', 'timezone', 'total_ordering', 'unicode_literals', 'validators', 'warnings', 'wraps']
上記から、taggitが動作/インストールされているかどうか?しかし、なぜ私が試したときにエラーが表示されるのfrom taggit.models import TaggedItem
ですか?