From e8f8ee8ad3e0f8cbbd93f63309e5c6922e0d9db3 Mon Sep 17 00:00:00 2001 From: Sami Date: Sun, 27 Mar 2022 23:32:26 +0500 Subject: [PATCH] form to override autocomplete organization field for Person class in admin --- app/admin.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/app/admin.py b/app/admin.py index 123879a..b80c041 100644 --- a/app/admin.py +++ b/app/admin.py @@ -7,6 +7,21 @@ from django.forms import TextInput from django.conf import settings from django.http import HttpResponse import csv +from django import forms +from django.contrib.admin.widgets import AutocompleteSelect + +class autocomplete_fields_form(forms.ModelForm): + """This form overrides autocomplete + organization field for Person class + """ + class Meta: + widgets = { + 'my_field': AutocompleteSelect( + Person._meta.get_field('organization').remote_field, + admin.site, + attrs={'data-dropdown-auto-width': 'true'} + ), + } def download_csv(modeladmin, request, queryset): name = queryset[0].__class__.__name__ @@ -85,13 +100,13 @@ class PersonAdmin(admin.ModelAdmin): }), ) list_display = ['id', 'full_name', 'organization'] - autocomplete_fields = ['organization'] + #autocomplete_fields = ['organization'] + form = autocomplete_fields_form # adjust width of autocomplete_fields organization + list_per_page = settings.ADMIN_LIST_PER_PAGE ordering = ['full_name'] actions = [download_csv] -# list_display_links = ['id'] - class ResourceKeywordInline(admin.TabularInline): autocomplete_fields = ['keyword']