如何使用djangautocompletelight更改选项值?

2024-04-19 12:34:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我以相当标准的方式使用django autocomplete light,只需遵循关于http://django-autocomplete-light.readthedocs.io/en/master/tutorial.html的教程。在

然而,每当我使用Select2小部件时,选项的值将自动成为模型实例的主键。有没有一种方法可以使用将值设置为模型的另一个字段?在


Tags: djangoio模型masterhttp标准html方式
1条回答
网友
1楼 · 发布于 2024-04-19 12:34:38

只是我自己需要改变默认行为,遇到这种情况,希望它仍然能帮助到外面的人。在

documentation提到了使用get_result_label返回不同标签的方法

class CountryAutocomplete(autocomplete.Select2QuerySetView):
    def get_result_label(self, item):
        return item.full_name

    def get_selected_result_label(self, item):
        return item.short_name

现在要修改返回的id,它非常相似。只需覆盖get_result_value

^{pr2}$

总之,我做了这样的事情:

class TagAutocomplete(autocomplete.Select2QuerySetView):

    def get_result_value(self, result):
        return str(result.name)

    def get_queryset(self):
        qs = Tag.objects.all()
        if self.q:
            q = self.q
            qs = qs.filter(
                        Q(name__icontains=q)
                    )
        return qs

相关问题 更多 >