我的名字是奥马尔。我正在研究一个使用SynapsePay api进行货币交易的django项目。我遇到一个问题,我有两个相同对象的实例(用户)。在django应用程序中创建新用户时,Django使用“用户”对象。当在api中创建新用户时,Synapse使用“用户”对象。当我尝试使用SYnapse api时,我开始使用相同变量的冲突。
在import语句中,当我从Synapse Api导入用户时,我将用户实例保存为SynapseUser,这就是我用来与应用程序交互的内容。
有些部分的api是我无法控制的,它使用Api中的'User'对象,它抓取错误的对象或试图抓取在传递的密钥中不存在的密钥。
以下是我所拥有的所有代码以及我想要获得的错误......
以下代码是获取表单内容并使用api测试银行验证。
Here is a link to the api github samples.md file
这是views.py文件:
IModelBinder
以下是用户提交关联帐户表单时出现的错误:
var tries = 0;
function getStatus() {
$.ajax({
type: 'POST',
url: url,
success: function(msg){
tries++;
if (msg == 1){
$('#status').text('success');
} else {
if (tries >= 5 ) {
$('#status').text('failed');
} else {
setTimeout(getStatus, 1000);
}
}
}
});
}
create_via_bank_login是在api中创建的内部方法,而不是我可以更改的内容。如何让它获取SynapseUser
**更新**
以下代码用于通过id查找用户:
import os
from synapse_pay_rest import Client
from synapse_pay_rest import User as SynapseUser
from synapse_pay_rest.models.nodes import AchUsNode
def linkBankLogin(request, form):
currentUser = loggedInUser(request)
cd = form.cleaned_data
bank_name = cd['bank']
username = cd['username']
password = cd['password']
required = {
'bank_name':'wellsfargo',
'username':'omarjandali',
'password':'123123asd'
}
ach_us = AchUsNode.create_via_bank_login(SynapseUser, **required)
ach_us.mfa_verified
所以我可以这样做:
AttributeError at /link_account/
type object 'User' has no attribute 'client'
Request Method: POST
Request URL: http://127.0.0.1:8000/link_account/
Django Version: 1.11.5
Exception Type: AttributeError
Exception Value:
type object 'User' has no attribute 'client'
Exception Location: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/synapse_pay_rest/models/nodes/ach_us_node.py in create_via_bank_login, line 39
因为我刚刚添加的代码在返回创建的用户信息时起作用
然后代替:
user = User.by_id(client, '...4dc1')
我可以使用:
synapseUser = SynapseUser.by_id(client, '...4dc1')
**继续更新**
我有以下代码来执行我想要集成的内容:
ach_us = AchUsNode.create_via_bank_login(SynapseUser, **required)
,新的错误消息如下:
ach_us = AchUsNode.create_via_bank_login(synapseUser, **required)
如何找出请求有错误的位置?
答案 0 :(得分:1)
您需要传递类SynapseUser
的实例,而不是类本身。
该行:
ach_us = AchUsNode.create_via_bank_login(SynapseUser, **required)
应该是:
ach_us = AchUsNode.create_via_bank_login(user, **required)
其中user
的类型为SynapseUser
所以你需要事先获取django SynapseUser
的{{1}}:
User
您需要创建一个方法来获取django用户的user = SynapseUser.by_id(client, synapse_user_id)
(在这种情况下为synapse_user_id
)
我建议创建一个currentUser
类,与UserProfile
建立一对一的关系,您可以在其中存储此信息和其他信息。
请参阅this post,了解如何进行设置。