Features: 1) Refactor vendor lookup logic to improve code readability; 2) Enhance queryset filtering to handle both string and list inputs for vendor names;

Fixes: None;

Extra: 1) Minor reformatting and alignment for better code clarity;
This commit is contained in:
Egor Pavlovich Gorbunov 2025-05-13 06:55:22 +03:00
parent ba9e5080bc
commit abc91c599e

View file

@ -184,15 +184,20 @@ class VendorNameListFilter(admin.SimpleListFilter):
def lookups(self, request, model_admin):
qs = model_admin.get_queryset(request)
vendors = qs.values_list("stocks__vendor__name", flat=True).distinct()
return [(vendor, vendor) for vendor in vendors if vendor]
vendors = (
qs.values_list("stocks__vendor__name", flat=True)
.distinct()
)
return [(v, v) for v in vendors if v]
def queryset(self, request, queryset):
if self.value():
values = [v.strip() for v in self.value().split(",") if v.strip()]
if values:
return queryset.filter(stocks__vendor__name__in=values)
return queryset
val = self.value()
if not val:
return queryset
values = [v.strip() for v in val.split(",") if v.strip()] if isinstance(val, str) else [v for v in val if v]
return queryset.filter(stocks__vendor__name__in=values)
@admin.register(Product)