2012-08-01 9 views

cevap

12

Bkz: Actions that Provide Intermediate Pages

Haklısınız değişiklik listesi sayfasından bunu yapamaz, ancak orta sayfasında, kullanıcı bir değer girmek için izin verecek bir biçime sahip olabilir ve daha sonra söz konusu değeri kullanın

eylem.

4

Django 1.5 ile olsa da, onun küçük bir hackish. Diğer eski Django sürümlerinin mümkün olduğundan emin değilim.

Kendi ModelAdmin alt sınıfınızı yazarsınız. ModelAdmin'in action_form isimli bir özelliği vardır ve bu, değişmez sayfadaki Go düğmesinin altında görünen formu belirler. Kendi formunuzu yazabilir ve ModelAdmin alt sınıfınızda action_form olarak ayarlayabilirsiniz. Bu değişikliklerle

from django.contrib.admin.helpers import ActionForm 
# ActionForm is the default form used by Django 
# You can extend this class 

class XForm(ActionForm): 
    x_field = forms.CharField() 


class YourModelAdmin(admin.ModelAdmin): 
    action_form = XForm 

, size X değerini koyabilirsiniz bir Charfield sahip olacaktır.

Ve işlem işlevinizde x_field kullanın.

def set_x_on_objects(modeladmin, request, queryset): 
    for obj in queryset: 
     obj.something = request.POST['x_field'] 
    # do whatever else you want 

class YourModelAdmin(admin.ModelAdmin): 
    action_form = XForm 
    actions = [set_x_on_objects]