0

私の見解では、渡された以前のkwargsに基づいて情報を抽出するクエリを実行しています。

paypaladaptivedebug.requestエントリのサンプル

{"returnUrl": "http://localhost:5000/paypal/return/pre/30/75f946df1bef45598cd42c45ff9e5e1c/", "maxTotalAmountOfAllPayments": "100.00", "maxNumberOfPaymentsPerPeriod": 1, "startingDate": "2012-03-30T07:59:09.447420", "maxNumberOfPayments": 1, "currencyCode": "USD", "endingDate": "2012-06-28T12:59:09.447158", "project": 585, "ipnNotificationUrl": "http://localhost:5000/paypal/ipn/30/75f946df1bef45598cd42c45ff9e5e1c/", "cancelUrl": "http://localhost:5000/paypal/cancel/pre/30/", "pinType": "NOT_REQUIRED", "requestEnvelope": {"errorLanguage": "en_US"}}

from django.utils import simplejson as json
from paypaladaptive.models import Preapproval

@login_required
@require_GET
def cancel_preapproval_bulk(request, project_id):
    preapprovals_list = []
    preapprovals = Preapproval.objects.all().exclude(preapproval_key=None).exclude(status='canceled').exclude(status='used')
    for obj in preapprovals:
        json_object = json.loads(obj.debug_request)
        if json_object['project'] == project_id:
            preapprovals_list.append(obj)

    print preapprovals_list

djangoシェルを介してこの実行を実行すると、渡された引数、つまりプロジェクトIDに従って生成されたリストが取得されます。

これを通常のdjangoビューで実行すると、空のリストが返されます...

なぜですか?

4

1 に答える 1

0

Preapprovalをインポートしていることを確認し、QuerySetのの使用を調べて、ディクショナリとして使用できるようにする必要があります。

{"returnUrl": "http://localhost:5000/paypal/return/pre/30/75f946df1bef45598cd42c45ff9e5e1c/", "maxTotalAmountOfAllPayments": "100.00", "maxNumberOfPaymentsPerPeriod": 1, "startingDate": "2012-03-30T07:59:09.447420", "maxNumberOfPayments": 1, "currencyCode": "USD", "endingDate": "2012-06-28T12:59:09.447158", "project": 585, "ipnNotificationUrl": "http://localhost:5000/paypal/ipn/30/75f946df1bef45598cd42c45ff9e5e1c/", "cancelUrl": "http://localhost:5000/paypal/cancel/pre/30/", "pinType": "NOT_REQUIRED", "requestEnvelope": {"errorLanguage": "en_US"}}

from project.app.model import Preapproval

@login_required
@require_GET
def cancel_preapproval_bulk(request, project_id):
    preapprovals_list = []
    preapprovals = Preapproval.objects.all().exclude(preapproval_key=None).exclude(status='canceled').exclude(status='used').values()
    for obj in preapprovals:
        if obj['project'] == project_id:
            preapprovals_list.append(obj)

    print preapprovals_list

編集:ページfacepalmを更新する必要があります。それでも、values()を調べる必要があります。

于 2012-03-30T13:55:52.800 に答える