通过TastyPie访问Django模型方法

时间:2013-08-02 03:56:51

标签: python django api tastypie

我正在尝试通过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)) 

我的基础是我发现的另一个堆栈:

Exposing model method with Tastypie

但它似乎没有工作,除了“JSON文本没有以数组或对象启动以及允许片段未设置的选项”之外我得到200服务器ok但是该方法实际上从未被调用过。

0 个答案:

没有答案