Django app that adds admin filter with any functionality you need.
Project description
django-admin-anylogicfilter
Django app that adds admin filter with any functionality you need.
Requirements
App tested with
- Python 3.11
- Django 4
Installation
pip install django-admin-anylogicfilter
Quick start
- Add anylogicfilter to INSTALLED_APPS:
INSTALLED_APPS = [
...
'anylogicfilter',
...
]
- Declare your filter class by inheriting from
AnyLogicFilter
class:
from django import forms
from anylogicfilter.filter import AnyLogicFilter
class MyFilter(AnyLogicFilter):
filter_title = 'Abracadabra'
filter_fields = [
('field_name', forms.CharField(max_length=100, required=True, initial='')),
('other_field_name', forms.BooleanField(label='Not default by-name label', required=False, initial='')),
]
def queryset(self, request, queryset):
if self.form.is_valid():
filter_params = {
p: self.form.cleaned_data.get(p)
for p in self.expected_parameters()
if self.form.cleaned_data.get(p) is not None
}
# some query, using subquery with 2+ parameters or anything else you need
return queryset.filter(...filter_params['field_name']...filter_params['other_field_name']...)
else:
return queryset
- Add it to
admin.py
:
@admin.register(YourModel)
class YourModelAdmin(admin.ModelAdmin):
list_filter = [
...
('name_of_any_field_from_or_related_to_your_model', MyFilter),
...
]
- Enjoy!
Maintainers
Contributing
Bug reports and/or pull requests are welcome :)
License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for django-admin-anylogicfilter-0.1.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | daa60223ffd8d9c2390042e09ef41094b76600c9bcb266d708e2bd50cb9c3099 |
|
MD5 | 096bf4141f006210853b16fe5cbec6ac |
|
BLAKE2b-256 | 34c9ce92c188091ef779fb2c91f6675e5b4c06f40471f7fad7c1251065184bb3 |