Итак, я пытался создать простую доску входа для пользователей, сообщений и комментариев.Теперь все работает безупречно, за исключением случаев, когда я пытаюсь удалить комментарий. Я могу нормально удалять сообщения, так как это простая функция удаления и перенаправление.но, для комментариев, это немного по-другому.Как это работает, вы входите в систему, затем получаете права root, что является каждым сообщением пользователя, которое они отправили.На эти сообщения он позволяет пользователю отвечать, что приводит его к странице, на которой показана информация о сообщении выше, а также к комментариям ниже с помощью формы для ввода вашего собственного сообщения.Теперь комментарии работают, все работает, но когда я удаляю комментарий (что да, есть оператор if, который показывает только кнопку удаления указанных комментариев, если они являются создателем.) Он отображает страницу комментария, но не имеет данных ...содержание сообщения пустое и комментариев нет .. Я возвращаюсь и обновляю, комментарий был удален, и все отображается нормально.Так что проблема в том, что когда он переходит к моей функции удаления комментария, а затем оттуда, где я пытался собрать всю необходимую информацию из указанной функции, одновременно удаляя комментарий, отправляя идентификатор сообщения и всю другую информацию обратно в showMsg (comments) страница.Но, похоже, по какой-то причине при рендеринге моей функции showMSG (comments) она не собирает никакой информации, особенно идентификатор сообщения из функции удаления ... Извините за объяснение, просто хотела выразить, что происходитВот.Любая помощь очень ценится, застрял на этом какое-то время ... К вашему сведению - опубликовал только то, что имеет отношение, и да, я знаю, что есть много ненужного кода, это были попытки найти решение, я все это вычистлю имодулировать позже.Хотя любой совет очень ценится.Я с нетерпением жду, что придумает сообщество!СПАСИБО ПАРНИ!
Views.py:
def deleteComment(request, id):
comment = Comment.objects.get(id=id)
print("Delete comment is:", comment)
comment_id = Comment.objects.get(id=id)
print(" delete Comment Id:", comment_id)
message_id = comment.message.id
print(" delete function Message Id:", message_id)
message = Message.objects.get(id=message_id)
comments = Comment.objects.all().order_by("-created_at")
# user = message.user
messageUser = message.user
deleted = comment.delete()
print("Delete Msg: ", message)
context={
"comment": comment,
"messageUser": messageUser,
"comments": comments,
"id": message_id,
"Message": message
}
return render(request, "UserDB_app/showMsg.html", context)
def showMsg(request, id):
print("show msg id", id)
message = Message.objects.get(id = id)
commentMsgs = Comment.objects.filter(message=message)
print("show Coment Msgs:", commentMsgs)
msgUser = message.user
comUser_id = request.session['id']
comment_id = Comment.objects.filter(user=comUser_id)
print(" showComment User Id:", comUser_id)
print(" showComment ID", comment_id)
comments = Comment.objects.all().order_by("-created_at")
comCount = len(commentMsgs)
context={
"user": msgUser,
"msgUser": msgUser,
"comUser": comUser_id,
"comment": comment_id,
"comments": comments,
"message": message,
"comCount": comCount,
"commentMsgs": commentMsgs # all comments for said msg
}
return render(request, "UserDB_app/showMsg.html", context)
urls.py
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^logpage/?$', views.logpage, name='ulogpage'),
url(r'^login/?$', views.login, name='ulogin'),
url(r'^register/?$', views.register, name='uregister'),
url(r'^regpage/?$', views.regpage, name='uregpage'),
url(r'^success/?$', views.success, name='usuccess'),
url(r'^message/?$', views.message, name='umessage'),
url(r'^comment/?$', views.comment, name='ucomment'),
url(r'^showMsg/msgComment/?$', views.msgComment, name='ushowmsgcomment'),
url(r'^showUser/(?P<id>\d+)?$', views.showUser, name="ushowUser"),
url(r'^showMsg/(?P<id>\d+)?$', views.showMsg, name="ushowMsg"),
url(r'^logout/?$', views.logout, name='ulogout'),
url(r'^delete/(?P<id>\d+)?$', views.delete, name='udelete'),
url(r'^deleteComment/(?P<id>\d+)?$', views.deleteComment, name='udeleteComment'),
]
showMsg.html:
<!DOCTYPE html>
<!-- NAVBAR Partial/template block -->
{% extends "UserDB_app/navbar.html" %} {% block body_blockNavbar %}
<!-- END NAVBAR at bottom -->
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>User Dashboard </title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO"
crossorigin="anonymous"> {% load static %}
<link rel='stylesheet' href="{% static '/UserDB_app/css/style.css' %}" media="screen" title="no title" charset="utf-8">
</head>
<body>
<div id="wrapper">
<div class="container" align="center">
{% if messages %} {% for message in messages %}
<div {% if message.tags %} class='{{ message.tags }}' {% endif %}>
<p style="color:red;">{{ message }}</p>
</div>
{% endfor %} {% endif %}
<div align="center" class=header>
<div class="border">
<h6>Posted By: {{user.fName}} {{user.lName}}</h6>
<p style="font-weight:bold;" align="left"> Content:</p>
<p align="center">{{message.content}}</p>
</div>
</div>
<!-- MESSAGE BOARD -->
<div class="container wall_container">
<hr>
<div align="center" class="col-md-12">
<!-- COMMENT BOARD -->
<h3>Comments:</h3>
{% for com in comments %}
{% if message.id == com.message_id %}
<div class="comWindow border">
<p class="comheader">Comment Posted by: {{com.user.fName}} {{com.user.lName}} </p>
<p class="message_comment">{{com.content}}</p>
<p class="comfooter">Created at: {{com.created_at}}</p>
{% if com.user.id == request.session.id %}
<a href="/deleteComment/{{com.id}}" onclick="return confirm('Are You Sure You Want To Delete This Comment?');" class="btn btn-sm btn-danger">Delete Comment</a>
{% endif %}
</div>
{% endif %}
{% endfor %}
<form action="msgComment" , method="POST">
{% csrf_token %}
<textarea for="com_content" class="form-control comment_box" name="com_content" id="com_content"></textarea>
<input type="hidden" name="message_id" id="message_id" value= {{message.id}}>
<input class="btn btn-sm btn-info" type="submit" value="Post Comment">
</form>
</div>
<!-- END -->
<hr>
</div>
<!-- END -->
<br>
</div>
</body>
</html>
{% endblock %}