Saya menggunakan antarmuka admin untuk melihat faktur dan produk. Untuk mempermudah, saya telah mengatur produk sebagai inline ke invoice, jadi saya akan melihat produk terkait di formulir invoice. Seperti yang Anda lihat, saya menggunakan hubungan banyak ke banyak.
Di model.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)
Di admin.py:
class ProductInline(admin.StackedInline):
model = Invoice.products.through
class InvoiceAdmin(admin.ModelAdmin):
inlines = [FilteredApartmentInline,]
admin.site.register(Product, ProductAdmin)
Masalahnya adalah Django menampilkan produk sebagai tabel menu drop down (satu per produk terkait). Setiap drop down berisi semua produk yang terdaftar. Jadi jika saya mempunyai 5000 produk dan 300 dikaitkan dengan faktur tertentu, Django sebenarnya memuat 300x5000 nama produk. Mejanya juga tidak estetis.
Saya tidak memerlukan produk untuk diupdate melalui formulir invoice. Bagaimana cara mengubahnya sehingga hanya menampilkan nama produk di tabel sebaris? Formulir mana yang harus saya ganti, dan bagaimana caranya?