Как вывести на страницу только 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)