簡體   English   中英

本地主機AttributeError中的Django測試文章

[英]Django test post in localhost AttributeError

我有一個test.py文件,應該將POST請求發送到我的LocalHost站點(如果LH對此不起作用,我也可以在test.domain.com上進行測試)。 但是,我沒有在數據庫中保存任何新信息。 我以前使用GET進行過嘗試,並且效果很好。

CMD中的錯誤消息:

webhook用戶中的文件“ C:\\ Users \\ winkl \\ Desktop \\ VE \\ mysite \\ payment \\ views.py”,第36行= User.objects.POST(id = request.POST('clientAccnum'))AttributeError:'UserManager '對象沒有屬性'POST'

views.py

@csrf_exempt
def webhook(request):
    template_name = 'payment/index.html'

    hook = Webhook()
   #ERROR MESSAGE FOR LINE BELOW
    user = User.objects.POST(id=request.POST('clientAccnum'))

    hook.user = user
    hook.clientSubacc = request.POST('clientSubacc')
    hook.eventType = request.POST('eventType')
    hook.eventGroupType = request.POST('eventGroupType')
    hook.subscriptionId = request.POST('subscriptionId')

    hook.timestamp = request.POST('timestamp')
    hook.timestamplocal = timezone.now()

    hook.save()

    user = User.objects.POST(id=request.POST('clientAccnum'))
    hook.user = user
    hook.user.profile.account_paid = hook.eventType == 'RenewalSuccess'
    hook.user.profile.save()

    print (hook.user, hook.clientSubacc, hook.timestamplocal)
    return render(request, template_name)

tests.py

from django.test import TestCase
import requests
import json

url = 'http://127.0.0.1:8000/payment/webhook/'
data = {'user':'11',
        'clientSubacc': '1111',
        'eventType': 'RenewalSuccess',
        'eventGroupType': 'Success',
        'subscriptionId': '12345'}

r = requests.post(url, (data))

目標是讓此測試帖子創建成功的Webhook,並將其保存在我的數據庫中。 此信息將更新我的用戶帳戶狀態。

您在重構或輸入錯誤時輸入錯誤。 嘗試使用

user = User.objects.get(id=request.POST.get('clientAccnum'))

獲得請求的用戶

添加答案

這個答案使我更加接近,但沒有100%解決問題。

  1. 缺少的是POST.get()中的“獲取”,您將在OP中看到只有POST()。
  2. “用戶”不是真實對象,將其更改為“ clientAccnum”

打印整個帖子而不是僅打印用戶也更好。 幫助我實現了第二個問題。

永遠被困在這個! 謝謝您的幫助。 您使我更進一步,將我引向了其余步驟。

def webhook(request):
    template_name = 'payment/index.html'

    #print(request.POST.get('clientAccnum'))
    print(request.POST)

    hook = Webhook()
    user = User.objects.get(id=request.POST.get('clientAccnum'))
    #user = User.objects.get(id=request.POST.get('user'))

    #hook.user = request.GET.get('clientAccnum')
    hook.user = user
    hook.clientSubacc = request.POST.get('clientSubacc')
    hook.eventType = request.POST.get('eventType')
    hook.eventGroupType = request.POST.get('eventGroupType')
    hook.subscriptionId = request.POST.get('subscriptionId')

    hook.timestamp = request.POST.get('timestamp')
    hook.timestamplocal = timezone.now()

    hook.save()

    user = User.objects.get(id=request.POST.get('clientAccnum'))
    hook.user = user
    hook.user.profile.account_paid = hook.eventType == 'RenewalSuccess'
    hook.user.profile.save()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM