2015-03-03 2 views
3

Я использую DRF и Pycharm 3.4.1 и Django 1.7. Когда я пытаюсь проверить мой класс сериализатора через PyCharm Джанго консоль, это дает мне следующую ошибку:Pycharm 3.4.1 - «AppRegistryNotReady: модели еще не загружены». Django Rest framewrok

код

from items_app.serializers import ItemSerializer 
s = ItemSerializer() 
print(repr(s)) 

затем вызвать следующие отслеживающие ошибки:

TraceBack

Traceback (most recent call last): 
    File "<input>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/rest_framework/serializers.py", line 440, in __repr__ 
    return unicode_to_repr(representation.serializer_repr(self, indent=1)) 
    File "/usr/local/lib/python2.7/dist-packages/rest_framework/utils/representation.py", line 75, in serializer_repr 
    fields = serializer.fields 
    File "/usr/local/lib/python2.7/dist-packages/rest_framework/serializers.py", line 312, in fields 
    for key, value in self.get_fields().items(): 
    File "/usr/local/lib/python2.7/dist-packages/rest_framework/serializers.py", line 883, in get_fields 
    info = model_meta.get_field_info(model) 
    File "/usr/local/lib/python2.7/dist-packages/rest_framework/utils/model_meta.py", line 68, in get_field_info 
    reverse_relations = _get_reverse_relationships(opts) 
    File "/usr/local/lib/python2.7/dist-packages/rest_framework/utils/model_meta.py", line 129, in _get_reverse_relationships 
    for relation in opts.get_all_related_objects(): 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/options.py", line 498, in get_all_related_objects 
    include_proxy_eq=include_proxy_eq)] 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/options.py", line 510, in get_all_related_objects_with_model 
    self._fill_related_objects_cache() 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/options.py", line 533, in _fill_related_objects_cache 
    for klass in self.apps.get_models(include_auto_created=True): 
    File "/usr/local/lib/python2.7/dist-packages/django/utils/lru_cache.py", line 101, in wrapper 
    result = user_function(*args, **kwds) 
    File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 168, in get_models 
    self.check_models_ready() 
    File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 131, in check_models_ready 
    raise AppRegistryNotReady("Models aren't loaded yet.") 
AppRegistryNotReady: Models aren't loaded yet. 

но когда я использую мой терминал (вместо pycharm d jango console), он работает правильно! Я знаю, что есть проблема с Pycharm, но я не знаю, как это исправить!

ответ

4

Загрузка реестра приложения является частью метода django.setup. Если реестр приложений не загружается при запуске консоли, наиболее вероятная причина в том, что это простая консоль python вместо полностью раздутой консоли Django.

Пробуйте использовать следующий код. Если это его решает, вы действительно используете простую консоль python.

>>> import django 
>>> django.setup() 
Смежные вопросы