【发布时间】:2016-06-02 19:15:56
【问题描述】:
我有一个模型评论,可以用于项目或任务。
class Comment(BaseCommentModel):
author = models.ForeignKey(settings.AUTH_USER_MODEL)
content_type = models.ForeignKey(
ContentType,
verbose_name=_('content type'),
related_name="contenttype_set_for_%(class)s"
)
object_pk = models.TextField(_('object ID'))
content_object = GenericForeignKey(ct_field="content_type", fk_field="object_pk")
Project 和 Task 的字段设置为:
comments = GenericRelation(Comment)
可以在项目或任务上创建评论,因此每个项目都应该有一个视图集:
class ProjectCommentViewSet(viewsets.ViewSet):
class TaskCommentViewSet(viewsets.ViewSet):
这些将显示与每个模型相关的 cmets。
但我不明白的是:
如何在评论模型的视图集中设置创建/更新/删除,以便使用正确的关系创建评论?
如何在视图集中过滤以显示与该模型相关的 cmets?我不能使用 select_related,因为评论没有项目或任务字段。
如何为这些关系编写
HyperlinkedModelSerializers?我是否需要向 CommentSerializer() 添加HyperlinkedIdentityField,然后向用户、项目和任务序列化程序添加HyperlinkedRelatedFields?或者我该如何设置?
感谢您提供的任何帮助,我真的可以在这里使用一些方向。
我无法理解模型上的关系如何转换为序列化程序和视图集。以及在使用泛型关系时如何处理关系。
【问题讨论】:
标签: django django-rest-framework