「Product」と「Range」の 2 つのモデルを多対多フィールドでリンクします。「Product」クラスは、私が作成したのではないアプリにあるため、変更できません (そのための modeladmin を編集できます)。「製品」の「範囲」を管理者で編集できるようにしたいのですが、インライン管理者ではなく、FilteredSelectMultiple で実行したいと考えています。
簡略化された「models.py」:
class Product(models.Model):
name = models.CharField(max_length=64)
#etc...
#I can't modify this class
class Range(models.Model):
name = models.CharField(max_length=32)
products = models.ManyToManyField(Product, related_name='ranges')
およびadmin.py:
class ProductAdmin(admin.ModelAdmin):
# What do I put here to get a multi-select box for ranges?
# Preferrably with one of those 'add' buttons to popup a window
# to add ranges.
Products を変更できれば、既存のスルー テーブルを使用して ManyToManyField を配置できます。これは正常に機能しますが、前述のようにできません (または、外部アプリへのアップグレードが非常に面倒になるため、そうしません)。
助けてくれてありがとう!(PS インライン管理フォームを使用したくない理由がここで簡単にわかることを願っています。UI が不必要に複雑になります)。