gpt4 book ai didi

python - 在django View 函数中调用活塞处理程序

转载 作者:行者123 更新时间:2023-12-01 06:04:44 25 4
gpt4 key购买 nike

我正在使用 django 活塞来实现我的 RESTful API。我已经实现了一个 api

/api/[uuid of user]

将给出与用户uuid相关的所有信息。

但是,我还想实现另一个 api

/api/user/username

其中的输出应该与前一个完全相同。

我不想维护两个具有不同输入但具有相同输入的 api。因此,我想做的是重定向活塞 api 调用。在网上搜索后,活塞似乎无法做到这一点(如果我错了,请纠正我),所以我想出了一个解决方法。对于第二个api,我可以使用django的 View 函数来实现,如果用户名确实存在,则返回处理程序。如果不存在,则在 View 函数中返回错误信息。我的代码如下。

def username_url_map(request, username):
try
user = UserProfile.objects.get(user = username)
except UserProfile.DoesNotExist:
return HttpResponse(simplejson.dumps({'error':'This user does not exist.' }), mimetype='application/json')
except UserProfile.MultipleObjectsReturned:
return HttpResponse(simplejson.dumps({'error':'This user does not exist.'}), mimetype='application/json')
uuid = user.uuid

results=GenericHandler.read(request, uuid)

json = simplejson.dumps(results)
return HttpResponse(json, mimetype='application/json')

但我收到以下错误消息:

TypeError
Exception Value: unbound method wrapper() must be called with GenericHandler instance as first argument (got WSGIRequest instance instead)

最佳答案

错误消息告诉您 GenericHanderread 方法是实例方法,而不是类方法。您需要先实例化该对象,然后才能调用该方法。

在不了解有关类或方法的更多信息的情况下,这可能可以工作:

handler = GenericHandler()
results = handler.read(request, uuid)

但是实例化调用可能需要一些参数,应该记录这些参数。

关于python - 在django View 函数中调用活塞处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8712423/

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