bugfix ora l'inline legge dall'inline e il modeladmin dal modeladmin.
Inoltre ora non uso più _registry e ho dato un nome sensato alla classemy-submodulepoetico
parent
0dbe8f2b6d
commit
9646cc8b6f
|
|
@ -13,7 +13,7 @@ from django.core.paginator import Paginator
|
|||
from django.db.models import F
|
||||
|
||||
from . import models
|
||||
from .drilldown_autocomplete import DrillDownAutocompleteModelAdmin
|
||||
from .drilldown_autocomplete import DrillDownAutocomplete
|
||||
|
||||
# Modified version of a GIST I found in a SO thread
|
||||
# cfr. http://masnun.rocks/2017/03/20/django-admin-expensive-count-all-queries/
|
||||
|
|
@ -167,8 +167,8 @@ ddaf={
|
|||
}
|
||||
}
|
||||
|
||||
class RecapitoInline(StackedPolymorphicInline, DrillDownAutocompleteModelAdmin):
|
||||
class IndirizzoInline(StackedPolymorphicInline.Child, DrillDownAutocompleteModelAdmin):
|
||||
class RecapitoInline(StackedPolymorphicInline, DrillDownAutocomplete):
|
||||
class IndirizzoInline(StackedPolymorphicInline.Child, DrillDownAutocomplete):
|
||||
model = models.Indirizzo
|
||||
autocomplete_fields = ('dug','comune','cap','nazione',)
|
||||
drilldown_autocomplete_fields = ddaf
|
||||
|
|
@ -284,7 +284,7 @@ class SoggettoContattabileAdmin(PolymorphicParentModelAdmin):
|
|||
|
||||
|
||||
@admin.register(models.Indirizzo)
|
||||
class IndirizzoAdmin(HiddenModel, DrillDownAutocompleteModelAdmin, RicercaOrdinataMixin, AjaxAutocompleteListFilterModelAdmin, PolymorphicChildModelAdmin, AutocompleteAdmin):
|
||||
class IndirizzoAdmin(HiddenModel, DrillDownAutocomplete, RicercaOrdinataMixin, AjaxAutocompleteListFilterModelAdmin, PolymorphicChildModelAdmin, AutocompleteAdmin):
|
||||
# resource = resources.IndirizzoResource
|
||||
# list_per_page = 15
|
||||
# paginator = CachingPaginator
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ from django.urls import path
|
|||
|
||||
class DrillDownAutocompleteJsonView(AutocompleteJsonView):
|
||||
"""Handle AutocompleteWidget's AJAX requests for data."""
|
||||
admin_context = None
|
||||
|
||||
def process_request(self, request):
|
||||
"""
|
||||
|
|
@ -42,8 +43,7 @@ class DrillDownAutocompleteJsonView(AutocompleteJsonView):
|
|||
model_name = request.GET["model_name"]
|
||||
source_model = apps.get_model(app_label, model_name)
|
||||
try:
|
||||
drilldown_field = self.admin_site._registry[
|
||||
source_model].get_drilldown_autocomplete_fields(request)[source_field.name]
|
||||
drilldown_field = self.admin_context.get_drilldown_autocomplete_fields(request)[source_field.name]
|
||||
filtered_by = set(drilldown_field['filtered_by'])
|
||||
except KeyError as e:
|
||||
raise PermissionDenied from e
|
||||
|
|
@ -105,7 +105,7 @@ class DrillDownAutocompleteSelect(AutocompleteSelect, DrillDownAutocompleteMixin
|
|||
pass
|
||||
|
||||
|
||||
class DrillDownAutocompleteModelAdmin(admin.options.BaseModelAdmin):
|
||||
class DrillDownAutocomplete(admin.options.BaseModelAdmin):
|
||||
drilldown_autocomplete_fields = dict()
|
||||
|
||||
class Media:
|
||||
|
|
@ -166,7 +166,7 @@ class DrillDownAutocompleteModelAdmin(admin.options.BaseModelAdmin):
|
|||
return super().formfield_for_foreignkey(db_field, request, **kwargs)
|
||||
|
||||
def drilldown_autocomplete_view(self, request):
|
||||
return DrillDownAutocompleteJsonView.as_view(admin_site=self.admin_site)(request)
|
||||
return DrillDownAutocompleteJsonView.as_view(admin_site=self.admin_site, admin_context=self)(request)
|
||||
|
||||
def get_urls(self):
|
||||
def wrap(view, cacheable=False):
|
||||
|
|
|
|||
Loading…
Reference in New Issue