Создание объекта, ответвляющегося от объекта, и установка идентификатора корневого объекта в поле parent_object
С помощью этой функции
def post(request, note_id, comment_id=None):
"""Create a comment under a post/idea."""
request.data["owner"] = request.user["id"]
request.data["note_id"] = note_id
if comment_id:
try:
parent_comment = Comment.objects.get(id=comment_id)
request.data["parent_comment"] = parent_comment
except Comment.DoesNotExist:
request.data["parent_comment"] = None
else:
request.data["parent_comment"] = None
serializer = CommentSerializer(data=request.data)
if serializer.is_valid(raise_exception=True):
serializer.save()
return Response(serializer.data)
сериализатор для модели комментариев
class CommentSerializer(serializers.ModelSerializer):
class Meta:
model = Comment
fields = "__all__"
и путь к моему url
path("<uuid:note_id>/comments/<uuid:comment_id>/replies/", views.CommentsGetOrCreateView.as_view(), name="CommentRepliesGetOrCreateView")
Я пытаюсь создать комментарий на основе комментария, созданного на основе заметки. В настоящее время я могу создать заметку и создать комментарий к ней, могу получить комментарии под комментарием, но не могу POST с указанным ниже url, как мне нужно. В настоящее время я получаю ошибку на postman как ["parent_comment" : "Must be a valid UUID"]
Я пробовал реорганизовать свой метод post и пробовал изменить сериализатор, чтобы родительский_коммент мог быть null. Я также попробовал добавить .id в конце "request.data["parent_comment"] = parent_comment.id"