我成功使用django-import-export库通过django admin为我定义的某些模型提供数据下载选项。
我很难通过用户管理提供相同的导出选项。
对于我的其他型号,我已经对我的admin.py
执行了以下操作:
class OtherResource(resources.ModelResource):
class Meta:
model = Other
class OtherAdmin(ExportMixin, admin.ModelAdmin):
# Other admin definition here
我的问题是为预先打包的Django模型提供相同的导出功能,例如User
。
我尝试了以下内容......
class UserResource(resources.ModelResource):
class Meta:
model = User
class UserAdmin(ExportMixin, UserAdmin):
pass
但这有几个问题,
User
模型字段(例如is_active
和groups
)exclude
并未排除导出中的这些字段我可以在我的结尾重新创建UserAdmin
,但我希望(并猜测)这是不必要的。
有什么想法吗?
答案 0 :(得分:4)
所以我犯了几个错误。
上述两个代码示例的解决方案如下:
对于Other
型号
class OtherResource(resources.ModelResource):
class Meta:
model = Other
class OtherAdmin(ExportMixin, admin.ModelAdmin):
resource_class = OtherResource
# Other admin definition here
和User
模型
class UserResource(resources.ModelResource):
class Meta:
model = User
fields = ('first_name', 'last_name', 'email')
class UserAdmin(ExportMixin, UserAdmin):
resource_class = UserResource
pass
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
中提琴。
一切都按预期工作。
Other
模型已完整导出
User
模型导出为3列(名字,姓氏和电子邮件)。
答案 1 :(得分:1)
如果您想在 Django 的用户模型中导入导出,请在您的应用程序 admin.py 中覆盖此代码
from import_export import resources
from import_export.admin import ExportMixin
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
from import_export.admin import ImportExportModelAdmin
# Register your models here.
class UserResource(resources.ModelResource):
class Meta:
model = User
fields = ('id','username','first_name', 'last_name', 'email')
# class UserAdmin(ExportMixin, UserAdmin):
# resource_class = UserResource
# pass
class UserAdmin(ImportExportModelAdmin):
list_display = ('id','username','first_name', 'last_name', 'email')
# list_filter = ('created_at',)
resource_class = UserResource
pass
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
答案 2 :(得分:0)
需要进口
from import_export import resources
from import_export.admin import ExportMixin
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin