У нас есть связанные модели в файле collection/models.py:
from django.db import models
class Vuz(models.Model):
name = models.CharField(max_length=150, verbose_name='Название вуза')
name_short = models.CharField(max_length=150, verbose_name='Аббревиатура вуза')
vuz_url = models.SlugField(verbose_name='Ярлык для использования в url')
def __unicode__(self):
return self.name
class Meta:
verbose_name = 'ВУЗ'
verbose_name_plural = 'ВУЗы'
class Author(models.Model):
fio = models.CharField(max_length=100, verbose_name='Ф.И.О.')
about = models.TextField(verbose_name='Об авторе')
birthday = models.DateField(verbose_name='Дата рождения')
vuz = models.ForeignKey(Vuz, verbose_name='ВУЗ')
def __unicode__(self):
return self.fio
Если мы хотим организовать поиск в админке Django для модели Author по полям ФИО и ВУЗ, то нам нужно использовать параметр search_fields в файле collection/admin.py:
from django.contrib import admin
from collection.models import Author
class AuthorAdmin(admin.ModelAdmin):
search_fields = ('fio','vuz__name',)
admin.site.register(Author, AuthorAdmin)
Обратите внимание, что в модели Author поле vuz связано отношением ManyToMany с моделью Vuz. Поэтому через двойное подчеркивание мы указываем, по какому полю связанной модели мы хотим производить поиск: vuz__name

Комментариев нет:
Отправить комментарий