【问题标题】:Post is not liking or Disliking帖子不喜欢或不喜欢
【发布时间】:2021-01-20 13:35:26
【问题描述】:

我正在制作一个博客应用程序,我构建了一个喜欢或不喜欢的功能,但它不起作用。它显示自定义错误。

detail.html

                <form method="GET" class="likeForm d-inline" action="{% url 'comments:post_like_dislike' post.id %}"
                    data-pk="{{post.id}}">
                    <button type="submit" class="btn"><i class="far fa-thumbs-up"></i>
                        <span id="id_likes{{post.id}}">
                            {% if user in post.likes.all %}
                            <p style="color:#065FD4;display: inline">{{post.likes.count}}</p>
                            {% else %}
                            <p style="color:black;display: inline">{{post.likes.count}}</p>
                            {% endif %}
                        </span>
                        Like</button>
                </form>
                <form action="{% url 'comments:post_like_dislike' post.id %}" method="GET"
                    class="d-inline dislikeForm" data-pk="{{ post.id }}">
                    <button type="submit" class="btn"><i class="far fa-thumbs-down"></i>
                        <span id="id_dislikes{{post.id}}">
                            {% if user in post.dislikes.all %}
                            <p style="color:#065FD4; display: inline;">{{post.dislikes.count}}</p>
                            {% else %}
                            <p style="color:black; display: inline;">{{post.dislikes.count}}</p>
                            {% endif %}
                        </span>
                        Dislike
                    </button>
                </form>

错误

当我单击“赞”按钮时,它显示“出了点问题(作为错误消息)但不计入赞”。当我通过管理员单击喜欢时,它会计数并显示在浏览器页面中。但不是当我手动点击 Like 按钮时。

任何帮助将不胜感激。

提前致谢

【问题讨论】:

    标签: python html django django-models django-views


    【解决方案1】:

    提交表单时,您没有发送任何likedislike 信息。您应该在按钮中添加这样的名称和值属性:

    <form>
        <button name='submit' type='submit' value="like"> Like </button>
    </form>
    <form>
       <button name='submit' type='submit' value="dislike"> Dislike </button>
    </form>
    

    仅供参考,当您进行数据库更新时,最好使用POST 方法。因为 GET 方法应该是幂等的,这意味着它们不应该改变服务器的状态。

    最后,由于您有两种不同的形式,我认为最好有两种不同的视图来处理这些操作(一个表示喜欢,另一个表示不喜欢)。

    【讨论】:

      猜你喜欢
      • 2020-11-14
      • 1970-01-01
      • 2015-06-29
      • 2020-09-11
      • 2020-11-23
      • 2020-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多