2012-03-30 3 views
0

私のビュー私は以前に渡されたkwargsに基づいて情報を抽出するクエリを実行しています。django jsonのクエリはシェルではなくビューではない

サンプルpaypaladaptive debug.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 

ジャンゴを通してこの実行を実行しているあなたはプロジェクトIDすなわち渡さ引数に応じて生成されたリストを取得シェル。

任意のアイデアなぜ...それは空のリストを返し、通常のDjangoのビューに

これを実行していますか?

答えて

0

Preapprovalをインポートしていることを確認し、クエリセットでvaluesの使用方法を調べて、辞書として使用できるようにする必要があります。

{"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 

EDIT:ページ手のひらを顔に当てるをリフレッシュしている必要があります。それでも、値()を調べる必要があります。

+0

obj ['status']を実行するとobj ['project']がobj ['debug_request']にあるので、debug_request内でネストされた項目では機能しないようです私は一層深く行く? – ApPeL

+0

私はそれを試みたことはありませんが、ドキュメントは次のように言います: "ValuesQuerySetを返します - モデルインスタンスオブジェクトではなく、反復可能として辞書を返すQuerySetサブクラス"だから私はそれが動作するはずだ... – olofom

関連する問題