回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有以下资源,我正在尝试覆盖obj_create。如果我不重写它,一切都会很好地工作,但是当我覆盖它时,它会给出一个POST错误。有线索吗?我真的很感谢你的回答,不过我相信Tastype最近在堆栈溢出问题上没有得到任何答案。。这很烦人。我也在考虑换我的堆栈出于同样的原因。。在</p>
<p>代码如下:</p>
<pre><code>class OrderResource(BackBoneCompatibleResource):
person = fields.ToOneField(PersonResource, 'person', full=True)
restaurant = fields.ToOneField(RestaurantResource, 'restaurant', full=True)
itemList = fields.ToManyField(OrderItemResource, 'itemList', full=True)
class Meta:
object_class = Order
queryset = Order.objects.all().order_by("-time_updated")
resource_name = 'order'
allowed_methods = ['get','post','put','delete','patch']
authorization = Authorization()
serializer = Serializer(formats=['json', 'jsonp', 'xml', 'yaml', 'html', 'plist'])
authentication = ClientAuthentication()
authorization = OrderAuthorization()
always_return_data = True
filtering = {
"restaurant" : ["exact"],
"time_created" : ["gte"],
"person" : ["exact"]
}
def obj_create(self, bundle, request=None, **kwargs):
print "Entered Order Create"
return super(OrderResource, self).obj_create(bundle, request, **kwargs)
</code></pre>
<p>订单模型是:</p>
^{pr2}$
<p>如前所述,如果我从资源中删除obj_create()函数,post就会正常进行。我无法理解我做了什么错事,我只是按照文档中指定的方式编写默认函数?我可能错过了一些很明显的东西。谢谢你的时间。。在</p>
<p>我得到的具体错误如下,但不确定它是否有帮助。。在</p>
<pre><code><type 'exceptions.TypeError'>, TypeError('obj_create() takes exactly 2 arguments (3 given)',), <traceback object at 0x10d30fb90>
</code></pre>