2012-08-01 2 views
2

에 따라 list_editable을 해제 : 장고 내가 누구 admin이고 다음과 같은 모델을 가지고 필드 값

class MyModelAdmin(admin.ModelAdmin): 
    list_display = ('invoice_code', 'total_amount', 'paid',) 
    list_editable = ('paid',) 
    search_fields = ('invoice_code',) 

    def __init__(self, *args, **kwargs): 
     super(MyModelAdmin, self).__init__(*args, **kwargs) 
     self.list_display_links = (None,) 

다음은 필드 가 booleanfield입니다 지불하고 기본적으로는 선택하지 않은 것입니다. 내가 이루고자하는 바는, 필드가 선택되지 않았을 때 편집 가능해야하고, 선택되었을 때 읽기 전용이어야한다는 필드 입니다. 나는 이것을 list_editable에서하고 싶다. 이것을 달성 할 수 있습니까? 그렇다면 어떻게해야합니까? 고마워요.

답변

2

내가 말할 수있는 한 list_editable의 기본 필드 만 사용할 수 있습니다. 이 필드는 이러한 기본 필드와 결합 된 표준 동작 만 지원합니다. 또한 테이블의 레코드에서 수행 할 수있는 작업은 서로 동일합니다.

행마다 행을 기반으로 사용자 정의 동작을 수행하려면 모델에 함수를 구현해야합니다.이 함수는 선택하면 편집 가능하고 선택하지 않으면 편집 할 수없는 필드를 반환합니다. 이것은 단순히 당신이 그것을 제공하는 클래스와 일부 JS를 기반으로 활성화되거나 적용되지 않는 html 체크 박스를 반환하는 문제 일 것입니다. 이 속성을 비활성화 된 입력 체크 박스에 직접 구현할 수도 있습니다.

확인란과 지정된 필드를 업데이트하려면 아약스 POST 명령 (Jquery 또는 다른 것을 통해)을 통해 값을 백엔드로 업데이트하거나 비헤이비어를 변경해야합니다. 양식 /보기 및 저장하여 업데이트해야 할 것입니다.

희망이 도움이됩니다.

관련 문제