Я использую интерфейс администратора для просмотра счетов и продуктов. Чтобы упростить задачу, я установил продукты как встроенные в счета-фактуры, поэтому я буду видеть связанные продукты в форме счета-фактуры. Как видите, я использую отношения «многие ко многим».
В моделях.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. Также стол не эстетичен.
Мне не нужно, чтобы продукты можно было обновлять через форму счета. Как я могу изменить его, чтобы он просто отображал название продукта во встроенной таблице? Какую форму я должен переопределить и как?