2016-08-09 9 views
0

私は困っています。Django - AttributeError: 'module'オブジェクトには属性 'admin'がありません

Pythonのバージョン:3.4.4

Djangoのバージョン: 1.10

DBの種類/バージョン: SqlLite3

インストール済みのアプリケーション:会計、レジストリ、...

モデル(会計):銀行、手数料、...

モデル(レジストリ):会社、...

一般的な関係:会社-銀行、有料カンパニー、...

管理サイトインライン(会計):

class FeeAdmin(Admin): 
    list_display = ['date', 'content_object'] 
    inlines = [registry.admin.CompanyInline] 
... 

管理サイトインライン(レジストリ):

class CompanyAdmin(Admin): 
    list_display = ['__str__', 'contact_telephone', 'contact_cellphone', 'contact_email'] 
    list_filter = Admin.list_filter + ['residence_city'] 
    search_fields = ['company_name'] 
    inlines = [accounting.admin.BankInline] 
... 

問題:二インストールアプリは、私がsettings.py順序を切り替えた場合、エラーは他のアプリで提起され、タイトルに私にエラーを与えます。最初のものは、常にスムーズに実行します。

inlines = [registry.admin.CompanyInline] 
AttributeError: 'module' object has no attribute 'admin' 

を順番に切り替えた場合、レジストリは、会計、または

inlines = [accounting.admin.BankInline] 
AttributeError: 'module' object has no attribute 'admin' 

後にインストールされている場合。

ヘッダ:

accounting.admin:

from django.contrib import admin 
from django.contrib.contenttypes import admin as ctadmin 
from django.contrib.contenttypes.models import ContentType 
import registry 
from .models import Bank 
from .models import Fee 
... 

registry.admin:

from django.contrib import admin 
from django.contrib.contenttypes import admin as ctadmin 
from django.contrib.contenttypes.models import ContentType 
import accounting 
from .models import Company 
... 

答えて

2

これは、Pythonの輸入についての質問です。

パッケージをインポートすると、その下にあるすべてのモジュールに自動的にアクセスすることはできません。それらを具体的にインポートする必要があります。したがって、import accountingを実行してからaccounting.adminにアクセスしようとすると、明示的にfrom accounting import adminを実行してからadmin.BankInlineなどにアクセスする必要があります。

+0

ありがとう!私は 'from registry.admin import CompanyInline'を試しましたが、唯一有効なのは' from registry import admin as registry'です – Giacomo

関連する問題