2

我有两个通过 OneToOne 关系连接的 django 模型,我无法看到如何在 Tastypie ModelResource 中连接它们。

我将借用在 Django Tastypie API 中包含子资源中定义的模型,而不是发布一些新模型,以展示我无法做到这一点的地方。使用TicketTicketComment模型,想象TicketComment是这样的:

class TicketComment(models.Model):
    ticket = models.OneToOneField('Ticket')

而不是使用 ForeignKey 字段。我已经看过文档以及上面使用ToManyFieldand的帖子ToOneFieldTicket但这在我的情况下似乎不起作用,因为TicketComment. 我想要做的是能够创建一个TicketComment列出Ticket. Tastypie 正确地抛出了一个异常,指出模型TicketComment中不存在字段Ticket。有没有办法将好的序列化TicketCommentTicketAPI 中?

4

1 回答 1

1

有一个属性arg 告诉tastepie 它应该使用哪个字段。Ticket 通过反向关系引用 TicketComment。默认情况下,它将是一个小写的模型名称,因此在您的示例中它将是ticketcomment。但我建议您在模型中明确设置一个related_name属性,这样您就会知道它是如何连接的。

所以在你的美味派中你应该这样做:

class TicketResource(ModelResource):
   comment = fields.OneToOneField('TicketCommentResource', 'ticketcomment')

它会正常工作。OneToOneField 中的第二个参数是一个属性。

于 2012-02-01T22:35:06.910 回答