не могу получить доступ к ключу пост-запроса django - PullRequest
0 голосов
/ 24 мая 2019

Я пишу веб-приложение Django, и у этого проекта есть одна функция, которая выдает запрос от клиента, у этого запроса есть один ключ, этот ключ является «токеном», когда я отправляю этот запрос с почтальоном, моя функция не может найти ключ «токена», поэтому янаписать небольшой код Python для отправки запроса, и этот код работает! Когда я использую Почтальон, мой ответ «Пожалуйста, отправьте токен!», и когда я использую мой код, ответ Json почему?

это мои URL почтальона

http://localhost:8000/submit/expensequery?tokene=123456789

# its my python code 
import requests
r = requests.post('http://localhost:8000/submit/expensequery/', data={'tokene':'123456789'})
print (r.url)





# its my webapplications function 
def query_expenses(request):
    if (request.POST.has_key('tokene')):
        this_token = request.POST['tokene']
        num = request.POST.get('num', 10)
        this_user = get_object_or_404(User, token__token=this_token)
        expenses = 
        expense.objects.filter(user_name=this_user).order_by('-date') 
        [:num]
        expenses_serialized = serializers.serialize("json", expenses)
        return JsonResponse(expenses_serialized, encoder=JSONEncoder, safe=False)
    else:
        return HttpResponse('please send token !')



    #its my application urls.py
urlpatterns = [
        url(r'^accant/',include('accant.urls')),
        url(r'',include('web.urls')),



    ]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)



    #its my web.urls.py

    urlpatterns = [
       url(r'^submit/expense/$',views.expense_func),
       url(r'^submit/income/$',views.income_func),
       url(r'^submit/expensequery/?$',views.query_expenses),
       url(r'^/test/',views.test),
    ]
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

1 Ответ

0 голосов
/ 24 мая 2019

Функциональность has_key устарела в пользу использования 'key' in request.POST.Поэтому ваше условие не сработает.Вы должны сделать if 'tokene' in request.POST:

...