Search_fields в django python

Мне было интересно, как я могу использовать внешний ключ для предварительного поиска, например

class Product(models.Model): name = models.CharField(max_length = 127) description = models.TextField() code = models.CharField(max_length = 127) def __unicode__(self): return self.name + " - " + self.code class ProductLot(models.Model): product = models.ForeignKey(Product) code = models.CharField(max_length = 30) lot_no = models.CharField(max_length = 30) location = models.CharField(max_length = 127) incoming = models.IntegerField() commited = models.IntegerField() available = models.IntegerField() reorder = models.IntegerField() created_date = models.DateField(auto_now_add=True) def __unicode__(self): return self.code + " - " + self.product.name + " - " + self.lot_no class LotComment(models.Model): product_lot = models.ForeignKey(ProductLot) comment_user = models.ForeignKey(User, null=True) comment_text = models.TextField() created_date = models.DateField(auto_now_add=True) def __unicode__(self): return self.product_lot.product.code + " - " + self.product_lot.product.name + " - " + self.product_lot.lot_no + " - " + str(self.created_date) 

чем в моем файле admin.py у меня есть

 from CMS.Inventory.models import Product class padmin(admin.ModelAdmin): search_fields=['name', 'description', 'code', 'lot_no' ] admin.site.register(Product, padmin) 

но я хочу, чтобы «LotComments» мог использовать те же поля поиска, что и «Product», как для ect кода.

Надеюсь, я объяснил это хорошо

3 Solutions collect form web for “Search_fields в django python”

Вы можете указать связанные поисковые запросы в search_fields admin search_fields же, как и в Django-запросах. Проверьте документацию . Для объекта search_fields выглядят примерно так:

 search_fields = ['product_lot__product__name', 'product_lot__product__description', 'product_lot__product__code', 'product_lot__lot_no'] 

Добавление к предыдущим ответам. Я хотел бы предложить фильтры перехода Django Admin

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

 class padmin(AdminAdvancedFiltersMixin, admin.ModelAdmin): advanced_filter_fields = ('name', ('product_lot__product__name', 'Product name')) 

Для ссылки на внешний ключ используйте __ (два символа подчеркивания):

 from CMS.Inventory.models import Product class ProductAdmin(admin.ModelAdmin): search_fields=['name__name', 'description', 'code', 'lot_no' ] admin.site.register(Product, padmin) 
  • Как добавить Search_fields в Django
  • Страница администрирования Django не отображает таблицы базы данных (глава 06 djangobook)
  • Новое поле в django-admin Добавить пользователя
  • Сохранение экземпляра модели с помощью DateTimeField в Django Admin теряет разрешение в микросекундах
  • Django фильтрует много для многих полей в admin?
  • Как установить django upload_handler в admin?
  • Пользовательская проверка в администраторе Django
  • Django adminsite настроить запрос search_fields
  • Python - лучший язык программирования в мире.