我遇到了麻烦。
Python版本: 3.4.4
Django版本: 1.10
数据库类型/版本: 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
...
答案 0 :(得分:2)
这是关于Python导入的问题。
导入包时,您不会自动访问其下的所有模块;你需要专门导入它们。因此,您需要明确执行import accounting
然后访问accounting.admin
等,而不是执行from accounting import admin
然后尝试访问admin.BankInline
。