Django 从GET请求组装db查询

Django 从GET请求组装db查询,django,get,Django,Get,我正在尝试根据GET请求提供的值组合查询,这可能吗?下面是我希望做的一个例子: def kml(request): venues = Venue.objects.filter( (Q(neighborhood__city__metro__slug=request.GET.get('metro')) if request.GET.get('metro')), (Q(neighborhood__slug=request.GET.get('neighborhoo

我正在尝试根据GET请求提供的值组合查询,这可能吗?下面是我希望做的一个例子:

def kml(request):
    venues = Venue.objects.filter(
        (Q(neighborhood__city__metro__slug=request.GET.get('metro')) if request.GET.get('metro')),
        (Q(neighborhood__slug=request.GET.get('neighborhood')) if request.GET.get('metro'))
    )
    return HttpResponse(venues)
基本上,如果我去
foo.com/?metro=nyc
它会返回该大都市区的所有场馆对象。如果我只提供邻里
foo.com/?neighborary=soho
,它将返回任何名为soho的邻里的所有场地。最后,
foo.com/?metro=nyc&Neighbory=soho
将提供满足大都会区和邻里标准的任何场地

这可能吗

另外,RESTAPI本质上就是这样做的吗?尝试使用活塞、TastyPie或Django REST是否更好?

Django查询api是,因此您可以执行以下操作:

def kml(request):
    venues = Venue.objects

    if request.GET.get('metro'):
       venues = venues.filter((Q(neighborhood__city__metro__slug=request.GET.get('metro')))

     if request.GET.get('metro')
        venues = venues.filter(Q(neighborhood__slug=request.GET.get('neighborhood')) )

     # and so on...

绝对有可能,Django管理员自己做