2016-07-10 6 views
2

Django-nested-inlines 응용 프로그램을 사용하려고하는데 오류가 발생합니다. 다음은 간단한 코드입니다AttributeError : 'module'객체에 'commit_on_success'속성이 없습니다.

MODELS.PY

class Language_Quiz(models.Model): 
    name = models.CharField(max_length=40) 
    language = models.OneToOneField(sfl_models.Language) 


class Question(models.Model): 
    language_quiz = models.ForeignKey(Language_Quiz) 
    text = models.TextField() 

class Answer(models.Model): 
    question = models.ForeignKey(Question,related_name='answers') 
    text = models.TextField() 
    correct = models.BooleanField() 

ADMIN.PY

from django.contrib import admin 
import models 
from nested_inlines.admin import NestedModelAdmin, NestedTabularInline 

class AnswerInline(NestedTabularInline): 
    model = models.Answer 

class QuestionInline(NestedTabularInline): 
    model = models.Question 

class LanguageQuizAdmin(NestedModelAdmin): 
    inlines = [QuestionInline] 



admin.site.register(models.Language_Quiz,LanguageQuizAdmin) 
admin.site.register(models.Answer) 
admin.site.register(models.Question) 

하지만 서버를 실행하거나 마이그레이션을하려고 할 때 오류가 발생합니다. 나는 문제가 어디 있는지 전혀 모른다. 문제가 어디에 있습니까? 카필 Sachdev 및 karthikr은 주석으로서

추적은

(venv) C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2>python manage.py makemigrations 
Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\venv\lib\site-packages\django\core\management\__init__.py", line 354, in execute_from_command_line 
    utility.execute() 
    File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\venv\lib\site-packages\django\core\management\__init__.py", line 328, in execute 
    django.setup() 
    File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\venv\lib\site-packages\django\__init__.py", line 18, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\venv\lib\site-packages\django\apps\registry.py", line 115, in populate 
    app_config.ready() 
    File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\venv\lib\site-packages\django\contrib\admin\apps.py", line 22, in ready 
    self.module.autodiscover() 
    File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\venv\lib\site-packages\django\contrib\admin\__init__.py", line 24, in autodiscover 
    autodiscover_modules('admin', register_to=site) 
    File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\venv\lib\site-packages\django\utils\module_loading.py", line 74, in autodiscover_modules 
    import_module('%s.%s' % (app_config.name, module_to_search)) 
    File "c:\python27\Lib\importlib\__init__.py", line 37, in import_module 
    __import__(name) 
    File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\language_tests\admin.py", line 3, in <module> 
    from nested_inlines.admin import NestedModelAdmin, NestedTabularInline 
    File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\venv\lib\site-packages\nested_inlines\admin.py", line 16, in <module> 
    class NestedModelAdmin(ModelAdmin): 
    File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages_2\venv\lib\site-packages\nested_inlines\admin.py", line 131, in NestedModelAdmin 
    @transaction.commit_on_success 
AttributeError: 'module' object has no attribute 'commit_on_success' 
+0

가능한 "[transaction.omic"은 "transaction.commit \ _on \ _success"와 동일합니까?] (http://stackoverflow.com/questions/21861207/is-transaction-atomic-same-as-transaction -commit-on-success) – e4c5

+0

나는 그것의 버전 호환성 문제라고 생각한다. 어떤 장고 버전을 사용하고 있습니다. "Django-nested-inlines"는 이것을 지원합니까? [email protected]_은 (는) [email protected]_on_success_에 영향을 미치므로 사용됩니다. [this]가 도움이 될 수 있다면 (https://github.com/theatlantic/django-nested-admin/issues/7) – kapilsdv

+2

이 라이브러리를 사용하지 마십시오. 마지막 수정은 2013 년이었고 더 이상 유지 관리되지 않는 것처럼 보입니다. – karthikr

답변

0

문제는 호환성이다. 장고 - 중첩 - 인라인에는 Django 1.8 이상에서 작동하는 데 문제가있을 수 있습니다.

내 경우 솔루션은 매우 간단했습니다. pipDjango-nested-inline을 사용하여 다운로드하고 ('인라인'끝에 's'표시 없음) 가져 오기 만 변경하십시오. 코드를 변경할 필요조차 없었습니다.

관련 문제