我有两个通过OneToOne关系连接的django模型,我很难看到如何在Tastypie ModelResource中连接它们。
我会借用Including child resources in a Django Tastypie API中定义的模型,而不是发布一些新模型,以显示我不知道如何做到这一点。使用Ticket
和TicketComment
模型,假设TicketComment
是这样的:
class TicketComment(models.Model):
ticket = models.OneToOneField('Ticket')
而不是使用ForeignKey字段。我已经看过使用ToManyField
和ToOneField
的文档以及上述帖子。但由于Ticket
未引用TicketComment
,因此在我的情况下似乎不起作用。我想要做的是能够创建一个列出TicketComment
中Ticket
的API。 Tastypie正确地抛出了一个例外,即TicketComment
模型中不存在Ticket
个字段。有没有办法将好的序列化TicketComment
纳入Ticket
API?
答案 0 :(得分:1)
有一个attribute arg告诉tastypie它应该使用哪个字段。票证以反向关系引用TicketComment。默认情况下,它将是一个小写的模型名称,因此在您的示例中它将是ticketcomment。但我建议您明确在模型中设置related_name属性,以便了解它的连接方式。
所以在你的tastypie中你应该这样做:
class TicketResource(ModelResource):
comment = fields.OneToOneField('TicketCommentResource', 'ticketcomment')
它会正常工作。 OneToOneField中的第二个arg是一个属性。