Несоответствие между вашим axios.get
и private
представлением.В вашем axios.get
вы передаете данные через параметры GET (строка запроса).Находясь в шаблонах URL, вы записываете параметр city
как часть URL.
Использование строки запроса (GET
параметры)
Вы можете дляНапример, измените значение urlpatterns
на:
urlpatterns = [
url(r'^api/public/', views.public),
url(r'^api/private/$', views.private)
]
В представлении вы можете получить значение, связанное с city
через:
@api_view(['GET'])
def private(request):
<b>city = request.GET.get('city')</b>
return HttpResponse("City is: {}.".format(city))
В случае city
параметр отсутствует в строке запроса, здесь city
будет None
, поэтому, возможно, вы захотите проверить это.
Использование URL
Мы также можем закодировать параметр в URLв этом случае вам нужно будет выполнить некоторое форматирование, чтобы url
выглядело так:
callWeather () {
const url = <b>'${API_URL}/api/private/London/'</b>
return axios.get(url, {
headers: {
Authorization: 'Bearer ${AuthService.getAuthToken()}'
},
}).then((response) => {
console.log(response.data)
this.message = response.data || ''
})
}