我有两个模型,“产品”和“范围”,由多对多字段链接。“产品”类在我没有编写的应用程序中,因此无法修改(我可以为它编辑模型管理员)。我想让“范围”和“产品”在管理员中是可编辑的,我想用 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.
如果我可以修改产品,我可以使用现有的直通表在其上放置一个 ManyToManyField,这可以正常工作,但如前所述,我不能(或者不会,因为它会使外部应用程序的升级成为一个真正的痛苦)。
提前感谢您的帮助!(PS 我希望在这里很容易看到为什么我不想使用内联管理表单 - 它使 UI 变得不必要地复杂)。