Django Import-Export:管理界面"TypeError at /"

 轻羽yy 发布于 2023-02-12 15:58

我想弄清楚如何使用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中声明而不是导入).

1 个回答
  • 虽然我不熟悉这个特定的应用程序,但你应该做的是替换

    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中声明而不是导入).

    2023-02-12 16:00 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有