如何在管理页面中设置Django filter_horizo​​ntal过滤?

时间:2017-02-20 03:26:17

标签: python django select filter model

我在django提供的filter_horizontal中已经阅读了很多关于此版本的主题和帖子。

不知何故,我试过了,但是我不能让它发挥作用。 有人可以帮我一把吗?此外,我不是试图将其添加到任何公共视图中。我正在尝试将其添加到管理页面中。

我有这3个模型:小组,档案,学生

学生提交的文件是多对多的。

让我们说这可以...... 学生报名,我作为管理员将学生放入某一组。 让我们说Group Vacation 。 我还将从管理页面上传文件。 那么我真正想要的是......我需要将创建的文件分配到一个组中。 但是,当我将文件分配给一个组时,它会使用下面的图像下拉列表。

enter image description here

如果我有100个文件,100个组甚至更多,请说。 但是,通过下拉列表会很烦人。

所以我想尝试做一些像

这样的事情

或至少接近它的东西。它有一个过滤器,我可以在多个选择选项中看到选择。

enter image description here

另外,如上图所示。我需要的两个选项包含文件和组,但在我的班级中AssignFileToGroup FileGroup是外键。

一直在搜索filter_horizontal但是,我尝试了几次将其添加到File > admin.py中,但无论我如何尝试并阅读其他文档,我仍然无法做到让它工作,filter_horizontal也适用于许多人。

有人可以帮我一把吗?

提前致谢,以下是我的代码

让我说我的文件 model.py

class File(Model):
    file_name = CharField(max_length=256)
    file = FileField(upload_to=FILE_UPLOAD_ROOT)
    creator = ForeignKey(Tutor,
                         on_delete=CASCADE,
                         related_name="%(class)ss",
                         related_query_name="%(class)s")
    groups = ManyToManyField(Group,
                             related_name="%(class)ss",
                             related_query_name="%(class)s",
                             through='AssignFileToGroup',
                             through_fields=('file', 'group'))


class AssignFileToGroup(Model):
    file = ForeignKey(File,
                      on_delete=CASCADE,
                      related_name="%(class)ss",
                      related_query_name="%(class)s")
    group = ForeignKey(Group,
                       on_delete=CASCADE,
                       related_name="%(class)ss",
                       related_query_name="%(class)s")
    assignment_date = DateTimeField(auto_now_add=True)

    student_views = ManyToManyField(Student,
                                    related_name="%(class)ss",
                                    related_query_name="%(class)s",
                                    through='StudentRecord',
                                    through_fields=('assign_file',
                                                    'from_student'))

class StudentRecord(Model):
    assign_file = ForeignKey(AssignFileToGroup,
                                    on_delete=CASCADE,
                                    related_name="%(class)ss",
                                    related_query_name="%(class)s")
    from_student = ForeignKey(Student,
                              on_delete=CASCADE,
                              related_name="%(class)ss",
                              related_query_name="%(class)s")

在我的论坛 model.py

class Group(Model):
    creator = ForeignKey(Tutor,
                         on_delete=CASCADE,
                         related_name="%(class)ss",
                         related_query_name="%(class)s")
    group_name = CharField(max_length=256, unique=True)

0 个答案:

没有答案