2010-02-27 4 views
1

많은 수의 오브젝트에서 ModelMultipleChoiceField를 사용하고 있습니다. 선택한 객체 만 표시하고 사용자가 js를 사용하여 선택 항목을 제거 할 수있게하려고합니다. 선택 사항을 추가하려면 ManyToManyRawIdWidget과 유사한 팝업 창이 열립니다.위젯에서 ModelMultipleChoiceField의 쿼리 세트를 정의하십시오.

def __init__(self, *args, **kwargs):   
    super(FormName, self).__init__(*args, **kwargs) 
    self.fields['field_name'].queryset = self.instance.field_name 

을하지만이 모든 형태의 수동 설정이 필요합니다 :

내가 가진 형태의 초기화에서 선택한 선택에의 검색어를 제한 할 수 있습니다. 필드 선택 항목에서 쿼리 세트를 가져 오기 위해 ModelMultipleChoiceField를 확장 할 수 있습니까? ModelChoiceIterator를 확장해야하지만 모듈 인스턴스에 액세스하는 방법을 이해할 수 없다고 생각합니다.

감사

답변

3

나는이 당신을 위해 무엇을 찾고 있는지 확실하지 않습니다,하지만 당신은 인증/사용자/당신이 시도해야 권한에 비해 같은 "목록 셔틀을"원하는 경우;

class MyForm(forms.ModelForm): 
    myfield = forms.ModelMultipleChoiceField(
     queryset = Category.objects.all(), 
     widget = admin.widgets.FilteredSelectMultiple(
       _('myfield'), False), 
     required = False, 
    ) 

class MyAdmin(admin.ModelAdmin): 

    form = MyForm 
+0

당신이 관리 응용 프로그램이 외부에서 사용하려는 경우, 당신은 당신의 템플릿에 – bmaeser

+0

감사 관리자 - 자바 스크립트를 가져올 위젯을 사용하지만, 보장 할 수 있습니다! 나는 장고 문서에서 이것을 알아내는 것이 어려웠다. –

관련 문제