class MyModel(models.Model):
order = models.IntegerField(editable=False)
#...
def move(self, move):
if move == 'UP':
mm = MyModel.objects.get(order=self.order-1)
mm.order += 1
mm.save()
self.order -= 1
self.save()
#...
class MyModelAdminForm(forms.ModelForm):
move = forms.CharField(widget=forms.Select)
move.required = False
move.widget.choices=(
(models.BLANK_CHOICE_DASH[0]),
('FIRST', 'First'),
('UP', 'Up'),
('DOWN', 'Down'),
('LAST', 'Last'),
)
class Meta:
model = MyModel
class MyModelAdmin(admin.ModelAdmin):
form = MyModelAdminForm
def save_model(self, request, obj, form, change):
obj.save()
move = form.cleaned_data['move']
obj.move(move)
admin.site.register(MyModel, MyModelAdmin)
Comments