2012-08-01 2 views

답변

12

참조 : Actions that Provide Intermediate Pages

당신이 바로 변경 목록 페이지에서 그것을 할 수 있지만 중간 페이지에서 사용자가 값을 입력 할 수 있도록 해주는 형태를 가질 수 있고, 그 다음에 그 값을 사용

행동.

4

Django 1.5는 약간 익숙하지 만 가능합니다. 다른 오래된 Django 버전이 가능할지 모르겠습니다.

자신 만의 ModelAdmin 서브 클래스를 작성하십시오. ModelAdmin에는 변경 목록 페이지의 Go 버튼 앞에 표시된 양식을 결정하는 action_form이라는 속성이 있습니다. 폼을 직접 작성하고 ModelAdmin 하위 클래스에서 action_form으로 설정할 수 있습니다. 이러한 변화와

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 

, 당신은 X 가치를 넣을 수 CharField을해야합니다.

귀하의 행동 기능에 x_field을 사용하십시오.

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] 
관련 문제