Django

0

장고 관리자의 외래 키 필드와 관련하여 기본 디스플레이 은 관련 모델의 외래 키 항목을 모두 포함하는 드롭 다운 목록 상자입니다. 나는 그것이 수천 항목을 포함하는 내 애플 리케이션과 나는 관리 인터페이스를 변경하고 그것을 채워진 드롭 다운 대신 텍스트 상자를 사용하여 찾고있다 내 애플 리케이션.Django

옆에 추가/수정 아이콘이있는 텍스트 상자를 찾고 있으므로 채워지는 값을 가져 오지 않고 직접 추가하거나 편집 할 수 있습니다.

달성 할 수있는 방법이 있습니까?

답변

0

사용자 정의 양식을 사용해보고이 양식 필드에서 사용자 정의 위젯을 구현할 수 있습니다. 또한이 필드에 선택에 대한 객체의 사용자 정의의 검색어에 대한 양식 __init__를 오버로드 할 수 있습니다에서

from django import forms 
from django_select2.forms import ModelSelect2Widget 


class KeyWidget(ModelSelect2Widget): 
    model = ModelToKey 
    search_fields = ['field__icontains'] 

    def label_from_instance(self, obj): 
     return u'{}'.format(obj.field) 


class CustomForm(forms.ModelForm): 

    class Meta: 
     model = ModelWithKey 
     fields = ('foreign_key_field') 
     widgets = { 
      'foreign_key_field': KeyWidget(attrs={'style': 'width:550px'}), 
      } 

(I이 desicion 3 일 파티 라이브러리 django_select2에 사용).

+0

'django_select2'가 Django 패키지에 포함되어 있지 않다면, 설치할 패키지와 요구 사항을 정확히 정해야합니다. –