如何在管理面板中同时使用django-admin-sortable 2和django-import-export包?

von4xj4u  于 2023-06-25  发布在  Go
关注(0)|答案(1)|浏览(137)

我想在管理面板中一起使用django-admin-sortable2 django-import-export包。下面是代码:

class University(models.Model):
    name = models.CharField(max_length=50, help_text="University or Institution Name")
    short_name = models.CharField(blank=True, max_length=10, help_text="University or Institution 
 Short Name")
    order = models.PositiveIntegerField(
        default=0,
        blank=False,
        null=False,
    )
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return f'{self.id}-{self.name}' 

    class Meta:
        ordering = ['order']

admin.py:

from import_export import resources
from import_export.admin import ImportExportModelAdmin

from adminsortable2.admin import SortableAdminMixin
# Register your models here.

class UniversityResource(resources.ModelResource):
    class Meta:
        model = University
        exclude = ('created_at', 'updated_at',)

class UniveresityAdmin(ImportExportModelAdmin, SortableAdminMixin, admin.ModelAdmin):
    resource_classes = [UniversityResource]

admin.site.register(University, UniveresityAdmin)
    • 但这是行不通的**,如果我使用:
class UniveresityAdmin(ImportExportModelAdmin, SortableAdminMixin, admin.ModelAdmin):
    resource_classes = [UniversityResource]

控制台:

failed to assign change_list_template attribute (see issue 1521)

这是输出:

如果我使用:

class UniveresityAdmin(ImportExportModelAdmin, SortableAdminMixin,):

这规定:

如果我使用:

class UniveresityAdmin(SortableAdminMixin, ImportExportModelAdmin,):

这规定:

TypeError at /admin/core/university/
join() argument must be str, bytes, or os.PathLike object, not 'list'

两个工程单手如果我删除其中之一。但是我想两个套餐一起用。* * 是否有解决此问题的变通方法?* * 提前感谢。

r9f1avp5

r9f1avp51#

简短的回答是import-export和admin-sortable 2不能一起工作。AFAIK没有解决方法。
原因是admin-sortable 2将change_list_template定义为属性,这意味着它不能重置。在import-export中,我们所能做的就是检测并记录错误:
无法分配change_list_template属性(请参见问题1521)
此问题的链接是here。admin-sortable 2上有一个open issue

相关问题