У меня возникли проблемы с перенастройкой моей страницы при удалении комментария пользователя. ниже мой код. Он удаляет сообщение, но дает мне эту ошибку: запрос соответствия сообщений не существует для Message.objects.get (id = message_id) .delete().Как удалить сообщение пользователя без ошибки запроса?
def remove_message(request, message_id):
Message.objects.get(id=message_id).delete()
return redirect(reverse('dashboard:show'))
^ВЫШЕ ИСПРАВЛЕНО:
новый вопрос, не может получить мою кнопку Удалить, чтобы показать при попытке удалить только текущие пользователи могут оставлять комментарии. Код ниже:
views.py
def remove_message(request, user_id, message_id):
user = User.objects.get(id=request.session['user_id'])
Message.objects.filter(id=message_id, user = request.user).delete()
return redirect(reverse('dashboard:show', args=user_id))
show.html
{% for message in messages%}
<div class="message">
<p class='bg-primary wall_content'><strong>{{message.messageuser.first_name}} wrote:</strong></p>
<p class='wall_content'>{{message.message}}</p>
{% if message.id == request.user %}
<a href='{% url "dashboard:remove_message" user.id message.id %}'>Delete Message</a>
{% endif %}
{% for comment in comments %}
{% if message.id == comment.message.id %}
<p class='bg-success wall_content comment'><strong>{{comment.user.first_name}} wrote:</strong></p>
<p class='wall_content comment'>{{comment.comment}}</p>
{% endif %}
{% endfor %}
если бы я хотел сделать так, чтобы только пользователь может удалить свое собственное сообщение, как я могу это сделать? Я попытался положить и {% if message.id == request.session.user_id%} в html, но затем кнопка полностью исчезнет. – Jives
@Jives, 'request.user' вместо' request.session'. Кстати, просто скрываться в поле зрения недостаточно. Вы также должны убедиться в этом. 'Message.objects.filter (id = message_id, user = request.user) .delete()' например. – falsetru
ах, я вижу сейчас, спасибо за помощь. – Jives