我想弄清楚如何使用Django Import-Export,
https://pypi.python.org/pypi/django-import-export
通过阅读文档
https://django-import-export.readthedocs.org/en/latest/getting_started.html#admin-integration
对于我的基本python知识,示例代码与其后面的结果照片之间的差距似乎很大.
我设法编写以下代码:
geographic_system/models.py:
from django.db import models from django.utils.translation import ugettext_lazy as _ class Regional_Units(models.Model): regional_unit = models.CharField( max_length=64, verbose_name=_(u'Regional Units')) def __unicode__(self): return u'%s' % (self.regional_unit)
geographic_system/resources.py:
from import_export import resources from geographical_system.models import Regional_Units from import_export.admin import ImportExportModelAdmin class Regional_Units_Resource(resources.ModelResource): class Meta(object): model = Regional_Units class Regional_Units_Resource_Admin(ImportExportModelAdmin): resouce_class = Regional_Units_Resource # Why originally commented out? #pass #Why pass?
geographic_system/admin.py:
from django.contrib import admin from geographical_system.models import Regional_Units from geographical_system.resources import Regional_Units_Resource_Admin admin.site.register(Regional_Units) admin.site.register(Regional_Units_Resource_Admin) # **Improvising here**, otherwise nothing would happen
当然,我的即兴创作admin.site.register(Regional_Units_Resource_Admin)
在访问时产生了以下信息
http://127.0.0.1:8000/admin/geographical_system/regional_units/
TypeError at /admin/geographical_system/regional_units/ 'RenameBaseModelAdminMethods' object is not iterable Request Method: GET Request URL: http://127.0.0.1:8000/admin/geographical_system/regional_units/ Django Version: 1.6 Exception Type: TypeError Exception Value: 'RenameBaseModelAdminMethods' object is not iterable Exception Location: /home/flyer/.virtualenvs/rara/lib/python2.7/site-packages/django/contrib/admin/sites.py in register, line 71 Python Executable: /home/flyer/.virtualenvs/rara/bin/python Python Version: 2.7.5 Python Path: ['/home/flyer/02/rara', '/home/flyer/.virtualenvs/rara/lib64/python27.zip', '/home/flyer/.virtualenvs/rara/lib64/python2.7', '/home/flyer/.virtualenvs/rara/lib64/python2.7/plat-linux2', '/home/flyer/.virtualenvs/rara/lib64/python2.7/lib-tk', '/home/flyer/.virtualenvs/rara/lib64/python2.7/lib-old', '/home/flyer/.virtualenvs/rara/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7', '/usr/lib/python2.7', '/usr/lib64/python2.7/lib-tk', '/home/flyer/.virtualenvs/rara/lib/python2.7/site-packages']
为什么会出现此错误?
我怎么能最终进入这个美丽的管理界面,其中启用了导入和导出选项?
ppetrid.. 14
虽然我不熟悉这个特定的应用程序,但你应该做的是替换
admin.site.register(Regional_Units) admin.site.register(Regional_Units_Resource_Admin)
同
admin.site.register(Regional_Units, Regional_Units_Resource_Admin)
如果一切正常,它应该工作.admin register()
方法期望Model作为第一个参数,并且(可选)将ModelAdmin类(或子类)作为第二个参数.
旁注:因为你刚刚开始使用python/django尝试遵守约定.这意味着不要_
在类Names中的单词之间使用(即RegionalUnits是一个合适的名称)并尝试ModelAdmin
在admin.py模块中放置声明(即RegionalUnitsResourceAdmin
应该在admin.py中声明而不是导入).
虽然我不熟悉这个特定的应用程序,但你应该做的是替换
admin.site.register(Regional_Units) admin.site.register(Regional_Units_Resource_Admin)
同
admin.site.register(Regional_Units, Regional_Units_Resource_Admin)
如果一切正常,它应该工作.admin register()
方法期望Model作为第一个参数,并且(可选)将ModelAdmin类(或子类)作为第二个参数.
旁注:因为你刚刚开始使用python/django尝试遵守约定.这意味着不要_
在类Names中的单词之间使用(即RegionalUnits是一个合适的名称)并尝试ModelAdmin
在admin.py模块中放置声明(即RegionalUnitsResourceAdmin
应该在admin.py中声明而不是导入).