我想从用户那里获得两个查询项(在本例中为两个州Id),并显示两者的相关值(在本例中为state1和2的城市) 我创建了此视图:
def get(self,request,State_id1,State_id2):
cities = city.objects.filter(state__in= [State_id1,State_id2])
但是似乎有问题。如何解决?
答案 0 :(得分:0)
最好将它们放在URL参数中,我确定您不希望像http://example.org/california/arizona/new-york/...../texas/washington/之类的东西不停地打开。 http://example.org/?states=california,new-york,texas,washington之类的东西会更有意义。在这种情况下,您不必这样做。
def get(self,request,State_id1,State_id2):
cities = city.objects.filter(state__in= [State_id1,State_id2])
您可以做到,在这种情况下,我继承了APIView,但我不知道您是如何实现的。
class ClassViewName(APIView):
def get(self,request):
states = [state for state in self.request.query_params.get('state').split(',')]
cities = city.objects.filter(state__in= states)
在您的应用程序网址格式中
urlpatterns = [
path('add-state/', views.ClassViewName.as_view())
]
假设此urls.py文件位于名为“ test”的某个应用中,而在主urls.py文件中,我们拥有
urlpatterns = [
path('api/test', include('test.urls'))
]
如果我要达到此终点,我将达到http://example.com/api/test/add-state/?states=california,texas