# AutoComplete for ForeignKey and ManyToManyField
uses same syntax as the search for django-admin
requirements
* query.js (http://jquery.com/)
* query.autocomplete.js
## Example
use a fairly simple
*models.py*
class Type (models.Model):
title = models.CharField()
class Celebrity(models.Model):
name = models.CharField()
class Film(models.Model):
type = models.ForeignKey( Type )
director= models.ManyToManyField( Celebrity, related_name="director")
actor = models.ManyToManyField( Celebrity, related_name="actor")
in m2m field need to specify related_name
*admin.py*
from apps.autocomplete.widgets import *
class FilmAdmin(AutocompleteModelAdmin):
related_search_fields = {
'type': ('title',),
'actor': ('^name',),
'director': ('^name',),
}
admin.site.register( Film, FilmAdmin )
"related_search_fields" parameter is used to specify on what fields you want to search 'actor' and 'director' ties are the names given in "related_name" query syntax is similar to [searching in admin panel](http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.search_fields)
I use the " 'actor': ('^name',) " operator ^ means the beginning of the field. and eventually will be formed about the substitution request form For example, if related_search_fieldsis set to ('^name',') and a user searches for john lennon, Django will do the equivalent of this SQL WHERE clause:
WHERE name ILIKE 'john%' AND name ILIKE 'lennon%'
uses same syntax as the search for django-admin
requirements
* query.js (http://jquery.com/)
* query.autocomplete.js
## Example
use a fairly simple
*models.py*
class Type (models.Model):
title = models.CharField()
class Celebrity(models.Model):
name = models.CharField()
class Film(models.Model):
type = models.ForeignKey( Type )
director= models.ManyToManyField( Celebrity, related_name="director")
actor = models.ManyToManyField( Celebrity, related_name="actor")
in m2m field need to specify related_name
*admin.py*
from apps.autocomplete.widgets import *
class FilmAdmin(AutocompleteModelAdmin):
related_search_fields = {
'type': ('title',),
'actor': ('^name',),
'director': ('^name',),
}
admin.site.register( Film, FilmAdmin )
"related_search_fields" parameter is used to specify on what fields you want to search 'actor' and 'director' ties are the names given in "related_name" query syntax is similar to [searching in admin panel](http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.search_fields)
I use the " 'actor': ('^name',) " operator ^ means the beginning of the field. and eventually will be formed about the substitution request form For example, if related_search_fieldsis set to ('^name',') and a user searches for john lennon, Django will do the equivalent of this SQL WHERE clause:
WHERE name ILIKE 'john%' AND name ILIKE 'lennon%'
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django_autocomplete_foreignkey-0.0.1.tar.gz.
File metadata
- Download URL: django_autocomplete_foreignkey-0.0.1.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73b040e8fab18653aa04796a4ca6d433f7e41d6040a748713155ae6bf9f8fe97
|
|
| MD5 |
a6002c71a5e50983ae642ac955c25bd9
|
|
| BLAKE2b-256 |
62a7250022fa3bb9ba70a19fb9131ee1afda56d2f969dc9293a529baa4c19d66
|