How to implement Like Dislike button for anonymous user in Django?

Viewed 18

How can I implement like and dislike button functionality for anonymous users in my django website?

I am recently developing django website,and decided not to use User Login & Logout for the purpose of more visiting users.

The problem is how to do implement IP Address instead of "request.user".

Anyone knows how to set IP address as if like a user for "like and dislike button"???

Below is my code so far (set request.user for like dislike function):

#views.py Dislike is the same code.
@login_required(login_url="login")
def Like(request, slug):
  add = Add.objects.get(slug=slug)
  
  # remove dislike when user hit like.
  is_dislike = False

  for dislike in add.dislikes.all():
    if dislike == request.user:
      is_dislike = True
      break

  if is_dislike:
    add.dislikes.remove(request.user)

  # add like
  is_like = False

  for like in add.likes.all():
    if like == request.user:
      is_like = True
      break
  
  if not is_like:
    add.likes.add(request.user)

  if is_like:
    add.likes.remove(request.user)

  next = request.POST.get("next", "/")
  return HttpResponseRedirect(next)
#review.html inside templates
<div class="rate-added-rule">
  <form action="{% url 'like' added_data.slug %}" method="POST">
    {% csrf_token %}
    <input type="hidden" name="next" value="{{ request.path }}">
    <button type="submit" class="like-button">
      <i class="far fa-thumbs-up">LIKE<span>VOTES:&nbsp;{{ added_data.likes.all.count }}</span></i>
    </button>
  </form>

  <form action="{% url 'dislike' added_data.slug %}" method="POST">
    {% csrf_token %}
    <input type="hidden" name="next" value="{{ request.path }}">
    <button type="submit" class="dislike-button">
      <i class="far fa-thumbs-down">DISLIKE<span>VOTES:&nbsp;{{ added_data.dislikes.all.count }}</span></i>
    </button>
  </form>
</div>
0 Answers
Related