Что пытаюсь сделать:
Есть инвойс, в инвойсе есть ссылки на продукты, их цена и количество.
Сейчас сделал промежуточную модель:
class Product(models.Model):
<..>many fields<..>
class Ivoice(models.Model):
<..>many fields<..>
class InvoiceProduct(models.Model):
product = models.ForeignKey(Product)
invoice = models.ForeignKey(Invoice)
quantity
price
Во-первых, сразу смущает эта «промежуточная модель», по сути она нужна только из-за кол-ва и цены (которая по дефолту как у продукта, но, есть возможность изменить). Да и хранит информацию она всегда (ну, потом переопределю метод удаления и при удалении инвойса буду удалять и записи из этой таблицы)
Во-вторых, в админке приходится делать Inline для инвойса, но заказчику не нравится внешний вид и функциональность.
Сейчас есть Inline для InvoiceProduct, в нем есть raw_id_field (для продукта). Клиенту приходится нажимать на кнопку выбора продукта → выскакивает окно → выбирает продукт → окно закрылось → в инлайне заполнил кол-во и цену.

Он хочет так: Он нажимает «Добавить продукт», открывается окошко, он выбирает продукт, кол-во, цену, жмакает добавить и он добавляется в «основном» окне.
Мои соображения:
1. В сети видел какое-то решение с AJAX'ом для более удобного интерфейса добавления ForeignKey, там скриншотов не было, на взгляд оценить по коду то ли это не смог. Позже попробую поставить и посмотреть.
2. Писать свой Админ-модуль (на ряду с TabularInline и StackedInline), с темплейтами, обработчиками и прочим. (Пока пугает отсутствие опыта написания такого и видимый объем работы)
3. ???
Буду рад любым соображениям.