django 관리자의 변경 목록에서 listToLayout을 사용하여 ManyToManyField에 대한 django-autocomplete 위젯을 표시하려고합니다. 일반적으로 list_display에서 ManyToManyField 포함장고 관리자 변경 목록의 ManyToManyField 위젯?
list_editable and widgets이 ImproperlyConfigured 예외가 발생, 예를 들면 :
이"" 'BookAdmin.list_display [2]', '저자'는 것입니다
은 여기 비슷한 발견 지원되지 ManyToManyField. "
난 (아마도 현명) 예외를 우회있는 contrib/관리/validate.py 3 개 라인을 제거했다. :
이제는 다음과 같은 것을 뱉어 낼 수 있습니다. 가까운 (?)이지만 시가는 없습니다. 0x1032a85d0 >
진행하는 방법에 대한 생각에서
< django.db.models.fields.related.ManyRelatedManager 객체? 이 작업을 수행하는 더 좋은 방법이 있습니까?
는 여기이 순간에이 작업은 다음과 같습니다
class AuthorAutocomplete(AutocompleteSettings): search_fields = ('first_name', 'last_name') class BookAdmin(AutocompleteAdmin, admin.ModelAdmin): def get_changelist_form(self, request, **kwargs): kwargs.setdefault('form', AuthorAutocompleteForm) return super(BookAdmin, self).get_changelist_form(request, **kwargs) list_display = ['isbn', 'title', 'author', 'publisher'] #... class AuthorAutocompleteForm(forms.ModelForm): class Meta: model = Book author = AuthorAutocomplete
감사 (AuthorAutocomplete는 일반 관리자 형태로 잘 작동)!
나쁜 개발자, 나쁜. Django 소스를 변경하지 마십시오. 나는 이것을 스스로 시도하지 않았지만, 관리자 애플 리케이션이 명시 적으로'ManyToManyFields'를 금지하면 거기에 이유가있다. 뭔가 어딘가에 모델을 저장하는 과정에서 제대로 작동하지 못합니다. 중요한 기능인 경우 버그를 신고하는 것이 좋습니다. 그렇지 않으면 운이 나빠질 수 있습니다. Django 소스에 패치를 적용하면 앞으로 개발자가 코드를 상속하는 불쌍한 개발자를 위해 유지 관리의 악몽을 꾸려 나갈 것입니다. –