属性错误:'module'对象没有"Field"属性

3 投票
1 回答
4261 浏览
提问于 2025-04-17 21:45

我正在尝试扩展一个管理定义,具体是 provide how this field is named in datasource,这个功能是在 bmihelac/django-import-export 这个库里实现的,但我遇到了一个错误,提示 Attribute Error 'module' object has no attribute "Field"

这个错误出现在 models.py 文件中。

class Author(models.Model):
    author = models.CharField( max_length=50)
    title = models.CharField( max_length=150)

在 admin.py 文件中。

#admin.py
from blog.models import *
from django.contrib import admin
from import_export.admin import ImportExportModelAdmin
from import_export import resources
from import_export import fields

class AuthorResource(resources.ModelResource):
    author= fields.Field(column_name='myname')
    class Meta:
        model = Author

class AuthorAdmin(ImportExportModelAdmin,admin.ModelAdmin):
    search_fields = ('author', 'title',)
    list_display = ('author', 'title',)
    resource_class = AuthorResource

谢谢你的关注。

这是完整的错误追踪信息:

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/admin/blog/author/

Django Version: 1.6.2
Python Version: 2.7.6
Installed Applications:
('blog',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'suit',
 'django.contrib.admin',
 'south',
 'django_select2',
 'suit_redactor',
 'suit_ckeditor',
 'import_export',
 'reversion',
 'django_extensions')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware')


Traceback:
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
  101.                 resolver_match = resolver.resolve(request.path_info)
File "C:\Python27\lib\site-packages\django\core\urlresolvers.py" in resolve
  318.             for pattern in self.url_patterns:
File "C:\Python27\lib\site-packages\django\core\urlresolvers.py" in url_patterns
  346.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "C:\Python27\lib\site-packages\django\core\urlresolvers.py" in urlconf_module
  341.             self._urlconf_module = import_module(self.urlconf_name)
File "C:\Python27\lib\site-packages\django\utils\importlib.py" in import_module
  40.         __import__(name)
File "D:\Documents\GitHub\GoodDjango\GoodDjango\urls.py" in <module>
  7. admin.autodiscover()
File "C:\Python27\lib\site-packages\django\contrib\admin\__init__.py" in autodiscover
  29.             import_module('%s.admin' % app)
File "C:\Python27\lib\site-packages\django\utils\importlib.py" in import_module
  40.         __import__(name)
File "D:\Documents\GitHub\GoodDjango\blog\admin.py" in <module>
  31. class AuthorResource(resources.ModelResource):
File "D:\Documents\GitHub\GoodDjango\blog\admin.py" in AuthorResource
  32.     author= fields.Field(column_name='myname')

Exception Type: AttributeError at /admin/blog/author/
Exception Value: 'module' object has no attribute 'Field'

因为我导入了和导入导出相关的类和方法,所以我找不到出错的原因。

1 个回答

0

请检查一下你在 C:\Python27\lib\site-packages\import_export\ 这个文件夹里是否有一个文件叫 __init__.py

如果你在使用 virtualenv,那么可能是它没有被激活。

另外,你这里还有一个错误:

class AuthorAdmin(ImportExportModelAdmin):
    search_fields = ('author', 'title',)
    list_display = ('author', 'title',)
    resource_class = AuthorResource

因为 ImportExportModelAdmin 已经有了 ModelAdmin:

class ImportExportModelAdmin(ImportExportMixin, admin.ModelAdmin):
    """
    Subclass of ModelAdmin with import/export functionality.
    """

撰写回答