如何使用django autocomplete与ContentType相关的字段?

时间:2017-11-17 09:07:45

标签: django django-autocomplete-light

美好的一天,我正在使用 django-autocomplete-light 3.2.10 来查找与django admin中ForeignKey关系ContentType关联的字段。我需要在其名称上过滤@property,但它实际上是ContentType。有没有办法做到这一点?

更新:我实际上需要对模型“verbose_name而不是name过滤@Html.ActionLink

1 个答案:

答案 0 :(得分:0)

我找到了一个答案,它有点丑陋而且有效。

class TransactionAutocomplete(autocomplete.Select2QuerySetView):
    def get_queryset(self):
        user = self.request.user
        if user.is_authenticated() and user.is_staff:
            if self.q:
                models = apps.get_models()
                result_list = []
                for model in models:
                    if self.q in model._meta.verbose_name:
                        result_list.append(
                            ContentType.objects.get_for_model(model)
                        )
                return result_list
            else:
                return ContentType.objects.all()
        else:
            return ContentType.objects.none()