Django admin: поиск объектов внешнего ключа, а не <select>?

Моя модель выглядит так:

class Asset(models.Model):
    serial_number = models.CharField(max_length=100, unique=True)
    asset_tag = models.CharField(max_length=100, unique=True)

class WorkOrder(models.Model):
    asset = models.ForeignKey(Asset)

По существу, отправляется рабочий заказ, а затем администратор назначает актив в рабочий заказ. Поле asset_tag - это штрих-код, который мы можем отсканировать. При редактировании рабочего порядка в администраторе django по умолчанию поле актива отображается как виджет. Мы хотим иметь поле поиска, чтобы мы могли сканировать тег ресурса, а затем искать подходящий актив в БД для связи с рабочим заказом.

Я знаю, что вы можете настроить внешний ключ django admin на жесткий кодированный запрос, но я не могу понять, как его получить, чтобы он выполнял поиск на основе поля на странице администратора.

Ответ 1

Вы посмотрели raw_id_fields?

Это должно быть довольно близко к тому, что вам нужно.

Ответ 2

Теперь вы можете использовать autocomplete_fields из django 2.0.

Это довольно аккуратно.