私は同じ問題を抱えていると私は図書館からこのフォークでそれを解決:https://github.com/jorgecorrea/django-smart-selects をあなたは私のREADMEバージョンで見ることができるように、これはMIフォークで水平モードで使用する方法です: models.py
あなたが水平モードのビューをジャンゴ使用することができますが、この変更が必要とされていないfilter_horizontal adminにフィールドを追加しないこの小さな変更に
from smart_selects.db_fields import ChainedManyToManyField
class Publication(models.Model):
name = models.CharField(max_length=255)
class Writer(models.Model):
name = models.CharField(max_length=255)
publications = models.ManyToManyField('Publication',
blank=True,
null=True)
class Book(models.Model):
publication = models.ForeignKey(Publication)
writer = ChainedManyToManyField(
Writer,
horizontal=True,
verbose_name='writer',
chained_field="publication",
chained_model_field="publications",
)
name = models.CharField(max_length=255)
: admin.pyに
@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
filter_horizontal = ('writer',)
# don't do that because you will be changing the widget.