我有一个与我的 BlogItem 模型一起使用的线程 mptt 评论模型:
class MyComment(MPTTModel, Comment):
parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
class MPTTMeta:
order_insertion_by=['-submit_date']
class Meta:
ordering=['tree_id','lft']
对于美味的派,我做了资源
class MyCommentResource(ModelResource):
# i tried to use this commented strings (and of course i created related resources)
#comment = fields.ForeignKey(CommentRosource, 'comment', null=True, full=True)
#site = fields.ForeignKey(SiteResource, 'site', null=True, full=True)
#content_type = fields.ForeignKey(ContentTypeResource, 'content_type', null=True, full=True)
#children = fields.ToManyField('self', 'children', null=True, full=True)
#content_object = GenericForeignKeyField({BlogItem: BlogItemResource}, 'content_object', null=True, full=True)
class Meta:
queryset = MyComment.objects.filter(level=0)
resource_name = 'myComment'
include_resource_uri = False
allowed_methods = ['get', 'post', 'put']
include_resource_uri = False
filtering = {
'object_pk': ALL,
'level': ALL
}
authorization= Authorization()
之后,我为 MyComment 模型的 GET 请求提供了工作 api(我可以看到所有评论(评论者的姓名、评论文本、mptt 级别、分页等)
但是当我尝试制作curl(或js)erquest时:
curl --dump-header - -H "Content-Type: application/json" -X POST --data '{"comment":"sdfsdfsdf"}' http://myhostname.com:80/api/v1/myComment/ > /tmp/err.html
我收到错误“当前事务已中止,命令在事务块结束之前被忽略”或其他错误(“DoesNotExist at /api/v1/myComment/ 未提供异常”、“无法分配无:“MyComment.content_type”不允许 null值。” - 但在请求中我 POST {"content_type":{"id":"15"}} 或链接到我的 api 中的 content_type 也很好用)。
对于其他更简单的模型(没有通用关系,但使用 ForeignKeys)我可以发出 curl 请求并获得“201 created”响应,所以我认为我有与“generic”评论模型相关的错误
我做错了吗?是否有任何文档或手册-如何通过tastepie为“通用”模型创建对象?