Add MANIFEST file and update README file
This commit is contained in:
@@ -1,14 +1,120 @@
|
||||

|
||||

|
||||

|
||||
[](https://badge.fury.io/py/django-admin-autocomplete-list-filter)
|
||||
|
||||
# django-admin-autocomplete-list-filter
|
||||
|
||||
Ajax autocomplete list filter for Django admin. Uses built-in shipped Django’s
|
||||
widgets.
|
||||
Ajax autocomplete list filter helper for Django admin. Uses Django’s built-in
|
||||
autocomplete widget! No extra package or install required!
|
||||
|
||||
| Before | After |
|
||||
|:-------|:------|
|
||||
|  |  |
|
||||
|
||||
|
||||
## Installation and Usage
|
||||
|
||||
@wip
|
||||
```bash
|
||||
$ pip install django-admin-autocomplete-list-filter
|
||||
```
|
||||
|
||||
Add `djaa_list_filter` to `INSTALLED_APPS` in your `settings.py`:
|
||||
|
||||
```python
|
||||
INSTALLED_APPS = [
|
||||
'django.contrib.admin',
|
||||
'django.contrib.auth',
|
||||
'django.contrib.contenttypes',
|
||||
'django.contrib.sessions',
|
||||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'djaa_list_filter',
|
||||
]
|
||||
```
|
||||
|
||||
Now, let’s look at this example model:
|
||||
|
||||
```python
|
||||
# models.py
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Post(models.Model):
|
||||
category = models.ForeignKey(to='Category', on_delete=models.CASCADE, related_name='posts')
|
||||
author = models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='posts')
|
||||
title = models.CharField(max_length=255)
|
||||
body = models.TextField()
|
||||
tags = models.ManyToManyField(to='Tag', blank=True)
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
class Category(models.Model):
|
||||
title = models.CharField(max_length=255)
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
class Tag(models.Model):
|
||||
name = models.CharField(max_length=255)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
```
|
||||
|
||||
We have 2 **ForeignKey** fields and one **ManyToManyField** to enable
|
||||
autocomplete list filter feature on admin. All you need is to inherit from
|
||||
`AjaxAutocompleteListFilterModelAdmin` which inherits from Django’s
|
||||
`admin.ModelAdmin`.
|
||||
|
||||
Now we have an extra ModelAdmin method: `autocomplete_list_filter`. Uses
|
||||
Django Admin’s `search_fields` logic. You need to enable `search_fields`
|
||||
in the related ModelAdmin. To enable completion on `Category` relation,
|
||||
`CategoryAdmin` should have `search_fields` that’s it!
|
||||
|
||||
```python
|
||||
from django.contrib import admin
|
||||
|
||||
from djaa_list_filter.admin import (
|
||||
AjaxAutocompleteListFilterModelAdmin,
|
||||
)
|
||||
|
||||
from .models import Category, Post, Tag
|
||||
|
||||
|
||||
@admin.register(Post)
|
||||
class PostAdmin(AjaxAutocompleteListFilterModelAdmin):
|
||||
list_display = ('__str__', 'author', 'show_tags')
|
||||
autocomplete_list_filter = ('category', 'author', 'tags')
|
||||
|
||||
def show_tags(self, obj):
|
||||
return ' , '.join(obj.tags.values_list('name', flat=True))
|
||||
|
||||
|
||||
@admin.register(Category)
|
||||
class CategoryAdmin(admin.ModelAdmin):
|
||||
search_fields = ['title']
|
||||
ordering = ['title']
|
||||
|
||||
|
||||
@admin.register(Tag)
|
||||
class TagAdmin(admin.ModelAdmin):
|
||||
search_fields = ['name']
|
||||
ordering = ['name']
|
||||
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
You are very welcome to contribute, fix bugs or improve this project. We
|
||||
hope to help people who needs this feature. We made this package for
|
||||
our company project. Good appetite for all the Django developers out there!
|
||||
|
||||
## License
|
||||
|
||||
@@ -18,8 +124,9 @@ This project is licensed under MIT
|
||||
|
||||
## Contributer(s)
|
||||
|
||||
* [Can Adıyaman](https://github.com/canadiyaman) - Creator, maintainer
|
||||
* [Uğur "vigo" Özyılmazel](https://github.com/vigo) - Maintainer
|
||||
* [Uğur "vigo" Özyılmazel](https://github.com/vigo) - Author, Maintainer
|
||||
* [Can Adıyaman](https://github.com/canadiyaman) - Author, Maintainer
|
||||
* [Erdi Mollahüseyinoğlu](https://github.com/erdimollahuseyin) - Author, Maintainer
|
||||
|
||||
---
|
||||
|
||||
@@ -35,8 +142,18 @@ All PR’s are welcome!
|
||||
|
||||
---
|
||||
|
||||
## TODO
|
||||
|
||||
- Add unit tests
|
||||
- Improve JavaScript code :)
|
||||
|
||||
## Change Log
|
||||
|
||||
**2019-10-11**
|
||||
|
||||
- Add ManyToManyField support
|
||||
- Initial release
|
||||
|
||||
**2019-10-07**
|
||||
|
||||
- Init repo...
|
||||
|
||||
Reference in New Issue
Block a user