我正在尝试通过 TastyPie API 访问我在项目模型中编写的购买方法。这是方法:
def purchase(self, buyer):
sold = False
seller = self.seller
if self.for_sale != False:
if seller != buyer:
self.for_sale = False
sold = True
return sold
我已确认此功能在 shell 中有效。这是我在资源中编写的用于调用我的模型方法的购买函数:
def prepend_urls(self):
return [
url(r'^(?P<resource_name>%s)/(?P<pk>\w[\w/-]*)/purchase%s$' % (self._meta.resource_name, trailing_slash()), self.wrap_view('purchase'), name = 'api_item_purchase'),
]
def purchase(self, request, **kwargs):
self.method_check(request, allowed = ['post'])
data = self.deserialize(request, request.body, format = request.META.get('CONTENT_TYPE', 'application/json'))
item_id = data.get('item_id', '')
print item_id
buyer = request.user
print buyer
item = Item.objects.get(pk = item_id)
print item
return self.create_response(request, item.purchase(buyer))
我基于我发现的另一个堆栈:
但它似乎不起作用,除了“JSON 文本不是以数组或对象开头以及允许未设置片段的选项”之外,我还得到了 200 个服务器正常,但该方法实际上从未被调用。