python - 如何过滤 django grappelli 中的自动完成结果?

标签 python django autocomplete django-queryset django-grappelli

我们有一个软删除方案,我们只是将内容标记为已删除,然后在不同的地方过滤掉已删除的内容。我正在尝试弄清楚如何从 grapelli 自动完成建议中过滤掉已删除的建议。

最佳答案

最后我选择了这个:

from grappelli.views.related import AutocompleteLookup

class YPAutocompleteLookup(AutocompleteLookup):
    """ patch grappelli's autocomplete to let us control the queryset 
    by creating a autocomplete_queryset function on the model """
    def get_queryset(self):
        if hasattr(self.model, "autocomplete_queryset"):
            qs = self.model.autocomplete_queryset()
        else:
            qs = self.model._default_manager.all()
        qs = self.get_filtered_queryset(qs)
        qs = self.get_searched_queryset(qs)
        return qs.distinct()

它可以通过覆盖相关的 url 安装:

url(r'^grappelli/lookup/autocomplete/$', YPAutocompleteLookup.as_view(), name="grp_autocomplete_lookup"),

确保这在您的网址中位于 Grappelli 之前。

关于python - 如何过滤 django grappelli 中的自动完成结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17852308/

相关文章:

python - 为什么我使用 Windows 身份验证通过 AzureML dataprep 登录 MS SQL 失败?

django - Django部署的正确项目路径和目录权限?

python - Django:匡威 `__endswith`

javascript - 谷歌地图API放置自动填充表单onload

javascript - 输入表单的 Jquery 自动完成,使用 Textpattern 类别列表作为源

python - 具有嵌套和属性查找的字典?

python - ServiceNow JSON Web服务的Python身份验证

Python Pandas 数据框减去累积列

django 向导,在同一步骤中使用表单和表单集

jquery - 使用 _renderItem 类型会破坏自动完成字段