2016-09-12 2 views
1

Я следил за документами до буквы и не мог получить поиск автозаполнения M2M для работы в Граппелли.Django Grappelli Autocomplete M2M

#models.py 
#main model 
class Entry(models.Model): 
    title = models.CharField(max_length=60) 
    content = models.TextField() 
    keywords = models.ManyToManyField(Keyword, blank=True) 


#model I want to be searched through while typing in the autocomplete field 
class Keyword(models.Model): 
    name = models.CharField(max_length=30) 

    @staticmethod 
    def autocomplete_search_field(): 
     return ('id__iexact', 'name__icontains',) 

    def __str__(self): 
     return '%s' % (self.name) 

затем в admin.py:

class EntryAdmin(admin.ModelAdmin): 
    raw_id_fields = ('keywords',) 
    autocomplete_lookup_fields = { 
     'm2m': ['keywords'], 
    } 

class KeywordAdmin(admin.ModelAdmin): 
    pass 

admin.site.register(Entry, EntryAdmin) 
admin.site.register(Keyword, KeywordAdmin) 

Изображение показывает, что он не возвращает никаких результатов, даже если есть определенно keyword запись под названием «Финансы».

Keyword Lookup with Grappelli M2M

ответ

2

Правильное имя метода autocomplete_search_fields, множественное число. В вашей модели ключевого слова вы используете autocomplete_search_field