Представления Django не возвращают значение из запроса с несколькими параметрами?
Я использую ванильный Django в качестве бэкенда для моего фронтенда React. Я пытаюсь сделать POST запрос, используя axios, который передает словарь из 2 значений моему представлению django, и пока что на моем фронтенде значения действительны, соединение с django url установлено, но единственной проблемой является фактическая обработка данных в представлении. Если я пытаюсь вывести значение, оно возвращается как None. Вот что у меня есть на данный момент:
Релевантный код
views.py
def render_data(request):
reddit_url = request.POST.get('reddit_url')
sort = request.POST.get('sort')
print(reddit_url, sort)
users_data, count = run_data(reddit_url, sort)
data = {
'users_data': users_data,
'count': count,
}
return JsonResponse(data)
component.jsx
const APIcall = () => {
axios
.post(
`http://127.0.0.1:8000/reddit_data/`,
{
reddit_url: location.state.link,
sort: location.state.sort,
},
{
headers: {
"Content-Type": "application/json",
"X-CSRFToken": location.state.token,
},
withCredentials: true, //cors requests
}
)
.then((res) => {
console.log("YESSIR");
setLoading(false);
});
};
Ожидаемая/фактическая производительность
Идеально, на выходе будут выведены значения из запроса, но фактический результат будет просто None, None
.
Что я пробовал
- I tried using
request.POST['reddit_url']
with no different results - Double checking the frontend values to make sure the POST call is going through with the correct values
- I'll be honest I havent tried much I really cant understand this one
Оказывается, мой QueryDict
возвращался пустым в консоли Django при попытке вывести его, и я просто решил эту проблему, используя var formData = new FormData()
; добавляя свои значения, а затем используя его как параметр в моем сообщении axios, чтобы сделать POST запрос.