Здравствуйте, у меня есть сервер на django
Есть модель user которая связана моделью комментариев ещё есть регистрацию пользователей. Как сделать так чтобы пользователь мог удалять комментария которые оставил он
У каждого комментария должен быть (если еще нет, то нужно так организовать код чтобы был) уникальный айдишник. С помощью авторизованной сессии можно достать айдишник пользователя который авторизовал сессию. Делаешь ендпоинт на бекенде куда фронт штлет запрос на удаление комментария по айдишнику, в обработчике ендпоинта достаешь айдишник пользователя, проверяешь принадлежность комментария ему. Запрещаешь если пользователь не авторизован или пробуется удалить не свой комментарий
Я добавляю комментарию дата атрибут в котором сидит id пользователя как можно достать id из дата атрибута с помощью react
Это не звучит как путь к хорошему решению.
Может есть что-то более удобное, но я бы доставал через получение ref
узла, и данных через DOM API для data-attributes Using data attributes - Learn web development | MDN
Важно не упустить: проверку того что пользователь имеет право удалять коммент нужно делать на сервере.
Django, у каждого комментария есть USER_ID / COMMENT_ID когда приходит запрос на удаление комментария по ИД, ты проверяешь что этот коммент USER_ID принадлежит текущему пользователю.
React данные скорее всего уже есть и пробрасываются в конечный компонент (<div data-comment-id="" />
это не про реакт):
/** Redux / Mobx / Graphql / React Context */
const MyComponent = props => {
return (
<div>
...
<DeleteCommentButton commentId={props.MYDATA.commentId} {...props} />
</div>
)
}
const DeleteCommentButton = props => {
const onDelete = () => {
fetch('/delete', { id: props.commentId })
}
return (
<button onClick={onDelete}>Delete</button>
)
}
Это лишний код который будет гонять юзер айди на клиент чтобы обратно переслать на сервер чтобы сверить с данными которые уже есть на сервере. Но он сработает корректно, без возможности удалять чужие комментарии.