Django智能选择多对多字段filter_horizo​​ntal / filter_vertical不允许链接

时间:2016-11-13 14:14:12

标签: python django many-to-many chaining django-smart-selects

您好我正在Django 1.10做一个项目。对于这个项目,我在管理面板中使用django-smart-select链接输入。 它工作正常。但是,如果我使用filter_horizo​​ntal / filter_vertical链接到很多到很多字段,则链接不再起作用。 github页面中没有解决方案。 我怎么解决这个问题?还有其他这样的应用吗?

1 个答案:

答案 0 :(得分:0)

我有同样的问题,我在图书馆的这个分支中解决了它:https://github.com/jorgecorrea/django-smart-selects 正如您在我的README版本中看到的,这是使用mi fork在水平模式下使用的方法: models.py

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)

通过这个小改动,您可以使用django水平模式视图,但不要将该字段添加到admin filter_horizo​​ntal 不需要这种改变: admin.py

@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
    filter_horizontal = ('writer',)
   # don't do that because you will be changing the widget.