如何在Django中相关模型的FK字段上使用F表达式编写QuerySet

问题描述 投票:0回答:1

在我的autocomplete函数中,我使用以下查询表达式来获取模型字段值:

def CitySearch(request):
    if request.is_ajax():
        q = request.GET.get('term','')
        names = City.objects.filter(name__icontains=q).annotate(value=F('name'), label=F('name')).values('id', 'value', 'label')

    ...
    ...
    return HttpResponse.....

如何将(模型)City字段“ name”过滤到相关模型“ Country”的FK字段?

django django-queryset jquery-ui-autocomplete django-filters
1个回答
0
投票

以下猜测国家是否具有名称字段。

 names = City.objects.filter(name__icontains=q).annotate(value=F('name'), label=F('name')).values('id', 'value', 'label', 'country__name')

或者您可以做,

 names = City.objects.filter(name__icontains=q).annotate(value=F('name'), country_name=F('country__name'), label=F('name')).values('id', 'value', 'label', 'country')
© www.soinside.com 2019 - 2024. All rights reserved.