Я использую интерфейс администратора для просмотра счетов и продуктов.Чтобы упростить задачу, я установил продукты как встроенные в счета, так что я увижу соответствующие продукты в форме счета.Как вы можете видеть, я использую отношение многие ко многим.
В models.py:
class Product(models.Model):
name = models.TextField()
price = models.DecimalField(max_digits=10,decimal_places=2)
class Invoice(models.Model):
company = models.ForeignKey(Company)
customer = models.ForeignKey(Customer)
products = models.ManyToManyField(Product)
В admin.py:
class ProductInline(admin.StackedInline):
model = Invoice.products.through
class InvoiceAdmin(admin.ModelAdmin):
inlines = [FilteredApartmentInline,]
admin.site.register(Product, ProductAdmin)
Проблема в том, что django представляет продукты в виде таблицы выпадающих меню (по одному на каждый связанный продукт).Каждый выпадающий список содержит все перечисленные продукты.Поэтому, если у меня 5000 продуктов и 300 связаны с определенным счетом, django фактически загружает 300x5000 наименований продуктов.Кроме того, таблица не эстетична.
Мне не нужно обновлять продукты через форму счета.Как я могу изменить его, чтобы оно отображало название продукта во встроенной таблице?Какую форму мне переопределить и как?