TypeError at /like/45 Поле 'id' ожидало число, но получило <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x000001BF06424F10>>.

Я пытаюсь добавить кнопку like к записи в блоге на django, но я вижу эту ошибку каждый раз, когда я пытаюсь нажать на кнопку like, но если я открываю страницу администратора, а затем возвращаюсь на сайт, он работает нормально, но я не знаю причину этого. помогите пожалуйста ?

  • просматривает код

    python
      def LikeView(request,pk):
      post = get_object_or_404(Post, id=request.POST.get('post_id'))
      post.likes.add(request.user)
    
    
- models code 
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
likes= models.ManyToManyField(User,related_name='blog_post')

def total_likes(self):
    return self.likes.count()

def __str__(self):
    return self.title

def get_absolute_url(self):
    return reverse('post-detail',kwargs={'pk':self.pk})

- urls 

urlpatterns = [
path('', PostListView.as_view(), name='blog-home'),
path('user/<str:username>', UserPostListView.as_view(), name='user-posts'),
path('post/<int:pk>/', PostDetailView.as_view(), name='post-detail'),
path('post/new/', PostCreateView.as_view(), name='post-create'),
path('post/<int:pk>/update/', PostUpdateView.as_view(), name='post-update'),
path('post/<int:pk>/delete/', PostDeleteView.as_view(), name='post-delete'),
path('about/', views.About, name='blog-about'),
path('like/<int:pk>',LikeView,name='like_post'),

]

- the buttom in the template

```<form action="{% url 'like_post' post.pk %}" , method="POST">
        {% csrf_token %}
        <button
          type="submit"
          ,
          name="post_id"
          ,
          value="{{ post.id }}"
          ,
          class="btn btn-primary btn-ms"
        >
          Like
        </button>

Я думаю, что ошибка в этой строке

 post.likes.add(request.user)
Вернуться на верх