我试图写一个脚本,我打算在预定的方式使用。 此脚本不是django项目的一部分,但与之通信
剧本像明星一样
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "proj.settings")
from django.db.models import Q
from app.models import *
transactions = Transaction.objects.filter(Q(paypal_auth != None)
and Q(paypal_auth.payer_id != None))
现在问题是python控制台的输出:
AttributeError: module 'app.models.paypal_auth' has no attribute 'payer_id'
那么为什么会发生这种情况呢
感谢@daniel,这是我的解决方案:
transactions = Transaction.objects.filter(~Q(paypal_auth__payment_id=None)
& ~Q(paypal_auth__payer_id=None))
这与外部脚本无关。这不是Django中的查询方式;有几件事是错误的,它们在您的主应用程序中也同样错误
您需要使用双下划线语法来交叉关系;此外,不能使用像
!=
这样的表达式,也不能使用and
。您的查询应该是:请注意,您的第二个条件意味着第一个条件,因此您可以只执行以下操作:
您导入了
paypal_auth
模块,但类是PayPalAuth
,它可能位于paypal_auth
模块内尝试
paypal_auth.PayPalAuth.payer_id
(或参考特定实例的payer_id
)相关问题 更多 >
编程相关推荐