2010-04-11 59 views
2

我有菜單項的模型:Django的菜單項排序

MenuItem(models.Model) 
name=models.CharField(max_length=50) 
url = models.URLField() 
position = models.IntegerField() 

Class Meta: 
ordering =['position'] 

然後我被MenuItem.objects.all()retriving它

我的問題是我如何能做出任何友好的用戶界面在管理面板,允許排序的MenuItems - 例如清單,+和 - 按鈕菜單項上下移動....

回答

0

從簡單的開始(對你作爲一個開發者),你可以很容易顯示在ListView的位置。

您可以添加一些JavaScript來將位置的每個顯示轉換爲 -/+控制器。 您可以讓這些+/-小部件具有onclick處理程序,對處理排序的自定義視圖執行ajax調用。

阿賈克斯的看法是相當簡單的,你只要抓住爲了前一個元素:

old_pos = ItemToBumpDown.position 
DisplacedItem = MenuItems.objects.filter(position__lt = ItemToBumpDown.position)[0] 
ItemToBumpDown.position = DisplacedItem.position 
DisplacedItem.position = old_pos 
ItemToBumpDown.save() 
DisplacedItem.save() 

你的Ajax回調調用完成後,可以交換的調節項目的管理員一行要麼是以前或下一個元素。

你可能需要做一些研究,但這應該是一個開始。