首页 > 解决方案 > Django Admin MediaOrderConflictWarning

问题描述

自从升级到 Django 2.1 后,我收到了运行时错误

/Applications/anaconda3/envs/svod-api-env/lib/python3.6/site-packages/django/forms/widgets.py:126: 
MediaOrderConflictWarning: Detected duplicate Media files in an opposite order:
admin/js/collapse.js
admin/js/inlines.js
MediaOrderConflictWarning,

我认为这是因为在我的模型管理类中有一个折叠的字段集,并且我的表格内联类也将被折叠。

如果我删除了字段集折叠类或内联折叠类,警告就会消失,但是当它们同时使用时,它们似乎会引起警告。

Django 2.1-dev 文档

在旧版本中,表单和表单集通过连接两者来将它们的媒体与小部件媒体相结合。组合现在尝试保留每个列表中元素的相对顺序。如果无法保留订单,则会发出 MediaOrderConflictWarning。

但我找不到在保留所有原始折叠类的同时修复媒体排序的方法。有没有其他人遇到过同样的问题?

    @admin.register(User)
    class UserModelAdmin(UserAdmin, ExportMixin):
        ...
        fieldsets = (
            (    
                _('Authentication'), {
                    'classes': (
                        'collapse',
                    ),
                    'fields': (
                        'username',
                        'password',
                        'user_permissions',
                        'groups'
                    )
                } 
            ),
            (
                _('Status'), {
                    'fields': (
                        'is_active',
                        'is_staff',
                        'is_superuser'
                    )
                }
            ),
            ... 
        )

        inlines = (
            DeviceTabularInline,
            PaymentTabularInline
        )


    class DeviceTabularInline(admin.TabularInline):
        model = Device
        classes = ('collapse',)
        ...


    class PaymentTabularInline(admin.TabularInline):
        model = Payment
        classes = ('collapse',) 
        ...

标签: pythondjangodjango-admindjango-mediadjango-2.1

解决方案


推荐阅读