프로젝트 또는 작업으로 이동할 수있는 모델 메모가 있습니다.Django Rest Framework 일반 관계 및 뷰셋
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")
프로젝트 및 작업과 같이 설정 한 필드가 :
comments = GenericRelation(Comment)
각각에 대한 뷰셋이 있어야하므로
댓글 중 하나를 프로젝트 또는 작업에 만들 수 있습니다
class ProjectCommentViewSet(viewsets.ViewSet):
class TaskCommentViewSet(viewsets.ViewSet):
그리고 각 모델과 관련된 주석을 표시합니다.
하지만 제가 이해하지 못하는 것은 :
가 어떻게 설정 않는/업데이트를 생성/코멘트가 올바른 관계를 생성되도록 코멘트 모델의 뷰셋에서 삭제 하시겠습니까?
해당 모델과 관련된 주석을 표시하려면 어떻게 내뷰 세트를 필터링해야합니까? Comment에는 Project 또는 Task 필드가 없기 때문에 select_related를 사용할 수 없습니다.
이러한 관계에 대해
HyperlinkedModelSerializer
을 쓰려면 어떻게해야합니까? CommentSerializer()에HyperlinkedIdentityField
을 추가해야하고HyperlinkedRelatedField
을 User, Project 및 Task Serializers에 추가해야합니까? 또는 어떻게 설정해야합니까?
제공되는 도움을 주셔서 감사합니다.
모델의 관계가 serializer 및 viewsets로 변환되는 방식을 이해하는 데 문제가 있습니다. 또한 일반 관계를 사용할 때 관계를 처리하는 방법에 대해서도 설명합니다.
내가 코멘트 시리얼의 콘텐츠 _의 OBJECT_ID와 content_object에 대한 필드를 정의 할 필요가시겠습니까? – shenk
아니요, 그것들은'model' 정의에서만 필요합니다. –