在 Django Admin 中,您可以根据搜索结果限制过滤器选项吗?

问题描述

我有一个包含以下示例模型的 Django 应用程序:

class Artist(models.Model):
    name = models.CharField(max_length=200)


class Album(models.Model):
    name = models.CharField(max_length=200)
    ...
    num_stars = models.IntegerField()
    artist = models.ForeignKey(Artist,on_delete=models.CASCADE)

我有一个 Album_Admin(admin.ModelAdmin),我想将搜索和过滤结合起来。我正在使用 admin.SimpleListFilter 字段上的 num_stars 编写自定义过滤器。

我希望 num_stars 的过滤器选择能够反映搜索结果中的可能选择。我不想看到表格中存在的所有可用过滤器选项,只想看到搜索结果中存在的那些。

我尝试将搜索字段 (search_term) 中的值存储在全局变量中,然后在过滤器中使用该变量,但更改列表视图首先进行过滤,然后从搜索功能中提供过滤后的查询集。

对如何实现这一目标有任何建议吗?

示例:

enter image description here

上图中的示例显示了所需的解决方案。在搜索栏中按artist_id = 1搜索后,我只想查看为artist_id = 1(**和****)的专辑设置的过滤选项

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)