首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用django-autocomplete-light更改选项值?

如何使用django-autocomplete-light更改选项值?
EN

Stack Overflow用户
提问于 2017-12-18 22:35:45
回答 1查看 999关注 0票数 1

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-11 09:47:24

只是我自己需要改变默认行为,然后遇到了这个问题,希望它仍然能帮助到一些人。

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

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
def get_result_value(self, result):
    """
    this below is the default behavior, 
    change it to whatever you want returned
    """
    return str(result.pk)

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

代码语言:javascript
运行
复制
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
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47870676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档