2014-01-15 2 views
2

내가 나머지 프레임 워크 API를 만들기위한 BDD를 구현하기 위해 상추를 사용하려고하지만 명령 python manage.py harvest을 실행할 때 오류AttributeError는 : 장고 나머지 프레임 워크와 상추를 실행할 때 'NoneType'개체가 어떤 속성 '_default_manager을'이없는

다음 얻을
/rest_framework/serializers.py", line 818, in get_related_field 
    'queryset': related_model._default_manager, 
AttributeError: 'NoneType' object has no attribute '_default_manager' 

자세한 스택 추적은 다음과 같습니다

(envSamplePayApp)[email protected]:/pythonWorkspace/samplePayProject# python manage.py harvest 
Django's builtin server is running at 0.0.0.0:8000 
Traceback (most recent call last): 
    File "/pythonWorkspace/samplePayProject/envSamplePayApp/local/lib/python2.7/site-packages/lettuce/django/management/commands/harvest.py", line 167, in handle 
    result = runner.run() 
    File "/pythonWorkspace/samplePayProject/envSamplePayApp/local/lib/python2.7/site-packages/lettuce/__init__.py", line 137, in run 
    self.loader.find_and_load_step_definitions() 
    File "/pythonWorkspace/samplePayProject/envSamplePayApp/local/lib/python2.7/site-packages/lettuce/fs.py", line 49, in find_and_load_step_definitions 
    module = __import__(to_load) 
    File "/pythonWorkspace/samplePayProject/envSamplePayApp/local/lib/python2.7/site-packages/rest_framework/tests/test_serializer_import.py", line 4, in <module> 
    from rest_framework.tests.accounts.serializers import AccountSerializer 
    File "/pythonWorkspace/samplePayProject/envSamplePayApp/local/lib/python2.7/site-packages/rest_framework/tests/accounts/serializers.py", line 6, in <module> 
    class AccountSerializer(serializers.ModelSerializer): 
    File "/pythonWorkspace/samplePayProject/envSamplePayApp/local/lib/python2.7/site-packages/rest_framework/tests/accounts/serializers.py", line 8, in AccountSerializer 
    admins = UserSerializer(many=True) 
    File "/pythonWorkspace/samplePayProject/envSamplePayApp/local/lib/python2.7/site-packages/rest_framework/serializers.py", line 196, in __init__ 
    self.fields = self.get_fields() 
    File "/pythonWorkspace/samplePayProject/envSamplePayApp/local/lib/python2.7/site-packages/rest_framework/serializers.py", line 232, in get_fields 
    default_fields = self.get_default_fields() 
    File "/pythonWorkspace/samplePayProject/envSamplePayApp/local/lib/python2.7/site-packages/rest_framework/serializers.py", line 716, in get_default_fields 
    field = self.get_related_field(model_field, related_model, to_many) 
    File "/pythonWorkspace/samplePayProject/envSamplePayApp/local/lib/python2.7/site-packages 

는 모든 코드는 downloadcode에서 찾을 수 있습니다.

참고 브라우저에서 API를 실행하면 제대로 작동합니다.

AttributeError: 'NoneType' object has no attribute '_default_manager'의 원인은 무엇입니까?

+3

코드를 인라인으로 포함 할 수 있습니까? –

+0

'_default_manager' 속성에 접근하려고 할 때'related_model'은 어떤 이유로'None'입니다. 코드 없이는 더 이상 말할 수 없습니다 – Elisha

+0

전체 코드로 링크를 게시했습니다. 인라인을 추가해야하는 특정 파일의 코드가 있습니까? –

답변

1

지금이 오류가 발생했습니다. 내 오류의 원인은 내가 ManyToManyField을 App A의 Model X에서 App B의 Model Y로 작성했기 때문입니다. python manage.py schemamigration --auto app_a을 통해 스키마 마이그레이션을 만들려고했는데 아직 수행하지 않았기 때문에이 오류가 발생했습니다.

  1. (INSTALLED_APPSapp_b 행을 추가로 할 수없는 것) app_b 초기 스키마 마이그레이션을 생성 갖지 않는 settings.pyINSTALLED_APPS'app_b' 튜플을 포함한다.

효과적으로 당시에는 알려지지 않은 모델에 연결되었습니다. 바라기를 이것은 미래에 누군가를 도울 수 있기를 바랍니다.

편집 : 실제로 추가 검사를 통해 이 오류가 애매하게 제기되는 이유는 django-debug-toolbar입니다. 분명히 DjangoDebugToolbar는 오류 전파 문제를 제대로 일으키고 있습니다. INSTALLED_APPS에서 비활성화하면 오류가 명확 해집니다.

관련 문제