Django URL, передать параметры в URL - PullRequest
0 голосов
/ 19 сентября 2018

Я хочу создать URL, например:

/ api / foodfeeds /? Keywords = BURGER, teste & mood = happy & location = 2323,7767.323 & price = 2

urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'^api/foodfeed/(?P<keywords>[0-9.a-z, ]+)/(?P<mood>[0-9.a-z, ]+)/(?P<location>[0-9]+)/(?P<price>[0-9]+)/$', backend_views.FoodfeedList.as_view()),
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

views.py

class FoodfeedList(APIView):
    # permission_classes = (permissions.IsAuthenticated,)
    def get(self,request,keywords,mood,location,price):
        print(request.GET['keywords'])

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Как сказал @Umair, вы передаете эти ключи как параметры URL-запроса , поэтому вам не нужно указывать это в URLPATTERNS

В вашем случае, чтобы получить данные, которые вы передаете через URL, следуйте приведенному ниже фрагменту кода

#urls.py
urlpatterns = [
                  path('admin/', admin.site.urls),
                  url(<b>r'^api/foodfeed/',</b> backend_views.FoodfeedList.as_view()),
              ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)


#views.py
class FoodfeedList(APIView):
    # permission_classes = (permissions.IsAuthenticated,)
    <b>def get(self, request):
        print(request.GET) # print all url params
        print(request.GET['keywords'])
        print(request.GET['mood'])</b>
        # etc
0 голосов
/ 19 сентября 2018

Те keywords, mood, location и т. Д. query params вы не должны включать их в URL, скорее вы должны получить к ним доступ через request.query_params

Ссылка: http://www.django -rest-framework.org / апи-гид / запросы / # query_params

...