django-autocomplete-light icon indicating copy to clipboard operation
django-autocomplete-light copied to clipboard

Show in list_filter the Product selector

Open paulocoutinhox opened this issue 11 months ago • 0 comments

Hi,

I tried a lot here and chatgpt build a filter in list_filter that is a product selector.

In the admin form it works without problems:

widgets = {
            "category": autocomplete.ModelSelect2(
                url="site-category-autocomplete",
            ),
            "subcategory": autocomplete.ModelSelect2(
                url="site-subcategory-autocomplete",
                forward=["category"],
            ),
            "product": autocomplete.ModelSelect2(
                url="product-autocomplete",
                forward=["product"],
            ),
}

But in list_filter it show nothing:

image

My code:

class AuctionAdmin(ReadonlyLinksMixin, admin.ModelAdmin):
    list_filter = [
        ("category", CategoryFilter),
        ("subcategory", SubcategoryFilter),
        ("supplier", RelatedDropdownFilter),
        ProductFilter,
        "status",
    ]
from dal import autocomplete
from django_admin_listfilter_dropdown.filters import RelatedDropdownFilter


class ProductFilter(RelatedDropdownFilter):
    def field_choices(self, field, request, model_admin):
        # Aqui não retorna nada, pois usamos o autocomplete no widget
        return []

    def widget(self, field, request):
        return autocomplete.ModelSelect2(
            url='product-autocomplete',
            attrs={
                'data-placeholder': 'Search for a product...',
                'data-minimum-input-length': 1,  # Ativa a pesquisa após um caractere
            }
        )

Can someone help me?

paulocoutinhox avatar Nov 28 '24 05:11 paulocoutinhox