У меня довольно странная проблема, которая вызвана следующей строкой кода:
userlist = twitter_user.objects.filter(enabled=True)
Если я закомментирую эту строку, код работает нормально, однако при раскомментировании я получаю следующее сообщение об ошибке:
Traceback (most recent call last):
File "script.py", line 33, in <module>
userlist = twitter_user.objects.filter(enabled=True) ###This is the line that causes the trouble.
File "/home/beano/projects/bikernod.com/lib/python2.6/site-packages/django/db/models/manager.py", line 141, in filter
return self.get_query_set().filter(*args, **kwargs)
File "/home/beano/projects/bikernod.com/lib/python2.6/site-packages/django/db/models/query.py", line 561, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File "/home/beano/projects/bikernod.com/lib/python2.6/site-packages/django/db/models/query.py", line 579, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File "/home/beano/projects/bikernod.com/lib/python2.6/site-packages/django/db/models/sql/query.py", line 1170, in add_q
can_reuse=used_aliases, force_having=force_having)
File "/home/beano/projects/bikernod.com/lib/python2.6/site-packages/django/db/models/sql/query.py", line 1058, in add_filter
negate=negate, process_extras=process_extras)
File "/home/beano/projects/bikernod.com/lib/python2.6/site-packages/django/db/models/sql/query.py", line 1225, in setup_joins
field, model, direct, m2m = opts.get_field_by_name(name)
File "/home/beano/projects/bikernod.com/lib/python2.6/site-packages/django/db/models/options.py", line 296, in get_field_by_name
cache = self.init_name_map()
File "/home/beano/projects/bikernod.com/lib/python2.6/site-packages/django/db/models/options.py", line 326, in init_name_map
for f, model in self.get_all_related_m2m_objects_with_model():
File "/home/beano/projects/bikernod.com/lib/python2.6/site-packages/django/db/models/options.py", line 401, in get_all_related_m2m_objects_with_model
cache = self._fill_related_many_to_many_cache()
File "/home/beano/projects/bikernod.com/lib/python2.6/site-packages/django/db/models/options.py", line 415, in _fill_related_many_to_many_cache
for klass in get_models():
File "/home/beano/projects/bikernod.com/lib/python2.6/site-packages/django/db/models/loading.py", line 167, in get_models
self._populate()
File "/home/beano/projects/bikernod.com/lib/python2.6/site-packages/django/db/models/loading.py", line 61, in _populate
self.load_app(app_name, True)
File "/home/beano/projects/bikernod.com/lib/python2.6/site-packages/django/db/models/loading.py", line 76, in load_app
app_module = import_module(app_name)
File "/home/beano/projects/bikernod.com/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
ImportError: No module named tweetgrab
Я подумал, что это может быть связано с самой моделью, поэтому я попытался перейти с моделей.BooleanField () на models.CharField () - это не имеет значения.
Вот запись models.py из приложения tweetgrab:
from django.db import models
class twitter_user(models.Model):
username = models.CharField(max_length=30)
enabled = models.BooleanField()
def __unicode__(self):
return self.username
Из того, что я могу разглядеть (я совсем новичок в Django / Python), строка кода, которую я изложил изначально, приводит к тому, что приложение не может быть найдено.
Я также убедился, что он включен в файл settings.py - в установленных приложениях следующим образом:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'tweetgrab',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
'django.contrib.admindocs',
)
Любая идея, что здесь происходит, я также пробовал это с MySQL и Sqlite - то же самое происходит с обоими.