Django реализация view

Модель:

class LikeDislike(models.Model):
    like = models.ManyToManyField(User,related_name='like')
    dis_like =  models.ManyToManyField(User, related_name='dis_like')

    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey()

    def __str__(self) -> str:
        return f'{self.content_object.title},{self.content_object}'
    class  Meta:
        verbose_name = 'Лайки'
        verbose_name_plural = 'Лайки'

view:

class LikeView(View):
    model = None
    vote = None
    def post(self, request, pk):
        vt = self.vote
        obj = self.model.objects.get(pk=pk)
        if  list(obj.vote.all()) == []:
            like_obj = LikeDislike.objects.create(content_object=obj)
        else:
            like_obj = LikeDislike.objects.get(object_id=obj.id)
        if request.user in like.like.all():
            like_obj.like.remove(request.user)
        elif request.user in like.dis_like.all():
            like_obj.dis_like.remove(request.user)
        else:
            like_obj.like.add(request.user)
       
        return HttpResponseRedirect(reverse('detail_post', args=[str(pk)]))

urlpatterns:

path('like/<int:pk>/', views.LikeView.as_view(model=Post, vote=LikeDislike.like), name='like')

Не могу сообразить, как написать код что-бы, вlike_obj.like.remove(request.user) подставить переменную vt вместо like.При выполнение выше поставленной задачи, django ругается, что в классе Likedislike, нету аргумента vt. Суть данной задачи заключается в том, что-бы не писать новую вьюшку, а ограничится одной, изменяя на нужный аргумент класса в urlpatterns.

Вернуться на верх