django - 制作一个带有按钮的有序列表管理页面来调整优先级

时间:2015-06-30 04:41:30

标签: django

使用django 1.7.7或1.8,我想要做的是向此页面添加一个向上和向下按钮: enter image description here

这样我就可以整齐地更改对象顺序。 我看见: https://djangosnippets.org/snippets/2858/ 但是我不明白如何通过Media类加载javascript。 我的代码:

#models.py
from django.db import models

class Box(models.Model):
    material = models.CharField(max_length=30)
    priority = models.IntegerField()
    class Meta:
        ordering = ('priority',)
    class Media:
        js = ['static/js/widget_ordering.js', ]

    def __unicode__(self):
        return "%i: %s" % (self.priority, self.material)

#admin.py
from django.contrib import admin
from .models import Box

class BoxAdmin(admin.ModelAdmin):
    list_display = ('priority', 'material')

admin.site.register(Box, BoxAdmin)

我已经知道替代解决方案是: - 制作扩展base_site的模板 - 更改urls.py以覆盖网址 - 写模板代码和javscript来做我需要的事情

但我想我应该首先询问是否有更简单的解决方案。

1 个答案:

答案 0 :(得分:1)

django-mptt支持Django 1.8+并内置admin base class拖放功能。我没有按要求提供上下按钮,但拖放应该足够好。

DraggableMPTTAdmin Screenshot

我不仅支持订购,还支持树木。 MPTT代表Modified Preorder Tree Traversal。