gpt4 book ai didi

python - SynapsePay 和 Django 用户问题的冲突实例

转载 作者:太空宇宙 更新时间:2023-11-03 14:46:55 25 4
gpt4 key购买 nike

我的名字是奥马尔。我正在开发一个 django 项目,该项目使用 SynapsePay api 进行货币交易。我遇到一个问题,我有同一对象(用户)的两个实例。当在 django 应用程序中创建新用户时,Django 使用“User”对象。当在 API 中创建新用户时,Synapse 使用“用户”对象。当我尝试使用 SYnapse api 时,我开始遇到同一变量的冲突使用。

在导入语句中,当我从 Synapse Api 导入用户时,我将用户的实例保存为 SynapseUser,这就是我用来与应用程序交互的实例。

API 的某些部分是我无法控制的,它们在 Api 中使用“用户”对象,并且它正在获取错误的对象或试图获取正在传递的 key 中不存在的 key 。

这是我拥有的所有代码以及我试图获取的错误...

以下代码是获取表单内容并使用 API 测试银行授权..

Here is a link to the api github samples.md file

这是views.py 文件:

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

create_via_bank_login 是在 api 中创建的内部方法,我无法更改。我怎样才能让它捕获 SynapseUser

** 更新 **

以下代码用于通过 ID 查找用户:

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)

**持续更新**

我有以下代码来执行我想要集成的操作:

def searchUserSynapse(request):
currentUser = loggedInUser(request)
currentProfile = Profile.objects.get(user = currentUser)
synapse_id = currentProfile.synapse_id

user = SynapseUser.by_id(clients, str(synapse_id))

response = user.json
print(response)
return user

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'
}

response = searchUserSynapse(request)

ach_us = AchUsNode.create_via_bank_login(response, **required)

ach_us.mfa_verified

新的错误消息如下:

BadRequestError at /link_account/
No exception message supplied
Request Method: POST
Request URL: http://127.0.0.1:8000/link_account/
Django Version: 1.11.5
Exception Type: BadRequestError
Exception Location:
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-
packages/synapse_pay_rest/http_client.py in parse_response, line 86

如何找出请求出错的地方?

最佳答案

您需要传递 SynapseUser 类的实例,而不是类本身。

行:

ach_us = AchUsNode.create_via_bank_login(SynapseUser, **required)

应该是:

ach_us = AchUsNode.create_via_bank_login(user, **required)

其中 user 的类型为 SynapseUser

因此,您需要事先获取 django UserSynapseUser:

user = SynapseUser.by_id(client, synapse_user_id)

您需要创建一个方法来获取 django 用户的 synapse_user_id(在本例中为 currentUser)

我建议创建一个与 User 具有一对一关系的 UserProfile 类,您可以在其中存储此信息和其他信息。

参见this post例如如何设置。

关于python - SynapsePay 和 Django 用户问题的冲突实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46165824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com