Evita errore con i facet (?_facets=True)
Il tag admin_list_filter valuta sempre list(spec.choices(cl)) anche se il template del filtro renderizza il widget autocomplete e ignora le opzioni. Con i facet attivi, choices() tentava il conteggio iterando su BLANK_CHOICE_DASH (pk vuoto), causando "Field 'id' expected a number but got ''". Il filtro autocomplete non enumera le opzioni: choices() ora ritorna un elenco vuoto, così i facet (non applicabili a questo filtro) non rompono piu la changelist.
This commit is contained in:
@@ -78,6 +78,14 @@ class AjaxAutocompleteListFilter(admin.RelatedFieldListFilter):
|
||||
def has_output(self):
|
||||
return True
|
||||
|
||||
def choices(self, changelist):
|
||||
# Il template renderizza il widget autocomplete e non usa l'elenco di
|
||||
# opzioni; inoltre questo filtro non le enumera (field_choices ritorna
|
||||
# BLANK_CHOICE_DASH). Restituendo un elenco vuoto si evita che i facet
|
||||
# (?_facets=True) tentino il conteggio sull'opzione vuota, che produrrebbe
|
||||
# "Field 'id' expected a number but got ''".
|
||||
return []
|
||||
|
||||
|
||||
class AjaxAutocompleteListFilterModelAdmin(admin.ModelAdmin):
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
||||
Reference in New Issue
Block a user