如何在相关模型上使用F表达式编写查询集&x27;Django中的s FK字段

如何在相关模型上使用F表达式编写查询集&x27;Django中的s FK字段,django,django-queryset,jquery-ui-autocomplete,django-filters,Django,Django Queryset,Jquery Ui Autocomplete,Django Filters,在我的自动完成函数中,我使用以下查询表达式获取模型字段值: 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')

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

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.....

如何将(车型)
城市
字段“
名称
”过滤到相关车型的FK字段“
国家
”?
以下猜测国家是否有名称字段

 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_name')

你是说内部连接吗?你能详细说明你的要求吗?没错。我正在使用jQuery autocomplete函数,并试图通过外键将两个城市(我试图为其构建查询集的模型)中不存在的国家/地区字段值过滤到相关模型“country”。模型“country”的FK字段定义为
name
。但是,对于这两种选择,我都得到了错误
ValueError:注释“country”与模型上的一个字段冲突
。我更新了答案。希望这会有帮助。您只需要命名国家以外的字段。它解决了问题吗?对不起,但没有。虽然这次没有错误,但筛选器不起作用。您是这样提取值的吗<代码>.values('id','value','label','country\u name')