Как вывести на страницу только 1 кнопку в зависимости от наличия в моделе

У меня есть кнопки like и unlike. По началу на странице будет только кнопка like. Если юзер на нее нажмет, то в моделе создастся объект, и на странице должна появится только кнопка unlike, которая при нажатии удаляет из модели объект. Если один юзер нажимает на двух страницах кнопку like, то на страницах появляются сразу обе кнопки, как исправить это?

шаблон

        {% for lik in like %}          
      
          {% if movie_pg == lik.movie %}
            <form style="float: right; padding-right: 120px;" method="POST">
              {% csrf_token %}
              <button type="submit" name="unlike" class="btn btn-danger btn-primary btn-sm"><span class="glyphicon glyphicon-thumbs-down" aria-hidden="true"></span>unlike</button>
            </form>
          {% else %}
            <form style="float: right; padding-right: 120px;" method="POST">
              {% csrf_token %}
              <button type="submit" name="like" class="btn btn-success btn-primary btn-sm"><span class="glyphicon glyphicon-thumbs-up" aria-hidden="true"></span>like</button>
            </form>
          {% endif %}
          
        {% empty %}
          <form style="float: right; padding-right: 120px;" method="POST">
            {% csrf_token %}
            <button type="submit" name="like" class="btn btn-success btn-primary btn-sm"><span class="glyphicon glyphicon-thumbs-up" aria-hidden="true"></span>like</button>
          </form>
        {% endfor %}

вьюха

class MoviePageListView(DetailView):
    model = Movies
    template_name = 'movies/show.html'
    context_object_name = 'movie_pg'
    
    def post(self, request, pk):
        if 'like' in request.POST:
            like = Likes    
            movie = Movies.objects.get(id=pk)           
            like.objects.create(user=request.user, movie=movie)
        elif 'unlike' in request.POST:
            movie = Movies.objects.get(id=pk)
            like = Likes.objects.get(user=request.user, movie=movie)
            like.delete()
        return redirect(request.path_info)

    def get_context_data(self, **kwargs):
        ctx = super(MoviePageListView, self).get_context_data(**kwargs)
        ctx['news'] = news
        ctx['form'] = Comment
        ctx['like'] = Likes.objects.all().filter(user=self.request.user)
        ctx['comm'] = Comments.objects.all()
        ctx['rat_movie'] = rat_movie
        return ctx

модель

class Likes(models.Model):
    movie = models.ForeignKey(Movies, null=True, on_delete=models.CASCADE)
    serial = models.ForeignKey(Serials, null=True, on_delete=models.CASCADE)
    user = models.ForeignKey(User, default=None, on_delete=models.CASCADE)

Ответы (0 шт):