我在django提供的filter_horizontal
中已经阅读了很多关于此版本的主题和帖子。
不知何故,我试过了,但是我不能让它发挥作用。 有人可以帮我一把吗?此外,我不是试图将其添加到任何公共视图中。我正在尝试将其添加到管理页面中。
我有这3个模型:小组,档案,学生
学生提交的文件是多对多的。
让我们说这可以...... 学生报名,我作为管理员将学生放入某一组。 让我们说Group Vacation 。 我还将从管理页面上传文件。 那么我真正想要的是......我需要将创建的文件分配到一个组中。 但是,当我将文件分配给一个组时,它会使用下面的图像下拉列表。
如果我有100个文件,100个组甚至更多,请说。 但是,通过下拉列表会很烦人。
所以我想尝试做一些像
这样的事情或至少接近它的东西。它有一个过滤器,我可以在多个选择选项中看到选择。
另外,如上图所示。我需要的两个选项包含文件和组,但在我的班级中AssignFileToGroup
File
和Group
是外键。
一直在搜索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)