【问题标题】:Django multiple Admin ModelDjango 多管理模型
【发布时间】:2023-06-07 19:31:01
【问题描述】:

我想使用 2 个管理应用程序,例如:

  • django-admin-sortable
  • django-import-export

有没有办法在管理表单中同时使用两者? 我的意思是我的代码正在使用 SortableAdmin:

class RuleAdminForm(forms.ModelForm):
content = forms.CharField(widget=CKEditorWidget())

    class Meta:
        model = Rule
        fields = '__all__'


class RuleAdmin(SortableAdmin):
    list_display = ('title', 'section', 'subsection',)
    readonly_fields = ('author', 'date_posted')
    fields = ('title', 'section', 'subsection', 'content', 'author', 'date_posted')
    form = RuleAdminForm

.register(Rule, RuleAdmin)

如果我想使用 import-export 我需要创建这个:

class RuleResource(resources.ModelResource):
    class Meta:
        model = Rule


class RuleResourceAdmin(ImportExportModelAdmin):
    resource_class = RuleResource

但我无法注册 .register(Rule, RuleResourceAdmin),因为 Rule 已经注册

有没有办法同时拥有这两种选择?使用 sortable admin 对我的规则进行排序,以及导入 CSV 等的可能性。

非常感谢!

【问题讨论】:

    标签: django python-3.x


    【解决方案1】:

    使用代理模型。

        class RuleProxyModel(Rule):
    
              class Meta:
                    proxy = True
    
    
    admin.site.register(RuleProxyModel,RuleResourceAdmin)
    

    How to use proxy model

    【讨论】: