Django - AttributeError: 'module' object has no attribute 'admin'
Django - AttributeError: 'module' object has no attribute 'admin'
我有麻烦了。
Python版本:3.4.4
Django 版本:1.10
DB type/version: SqlLite3
已安装的应用程序: 会计、注册、...
模型(会计): 银行,费用,...
模型(注册): 公司,...
通用关系: Company-Bank, Fee-Company, ...
管理站点内联(会计):
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'
如果调换顺序。
Headers:
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
...
这是一个关于 Python 导入的问题。
当你导入一个包时,你不会自动访问它下面的所有模块;你需要专门导入那些。因此,与其执行 import accounting
然后尝试访问 accounting.admin
,不如显式执行 from accounting import admin
然后访问 admin.BankInline
等
我有麻烦了。
Python版本:3.4.4
Django 版本:1.10
DB type/version: SqlLite3
已安装的应用程序: 会计、注册、...
模型(会计): 银行,费用,...
模型(注册): 公司,...
通用关系: Company-Bank, Fee-Company, ...
管理站点内联(会计):
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'
如果调换顺序。
Headers:
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
...
这是一个关于 Python 导入的问题。
当你导入一个包时,你不会自动访问它下面的所有模块;你需要专门导入那些。因此,与其执行 import accounting
然后尝试访问 accounting.admin
,不如显式执行 from accounting import admin
然后访问 admin.BankInline
等