类中的Django访问pk id

2024-06-02 07:24:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个网站,我想能够有意见。当您转到url/post/int:pk时,它会更详细地显示帖子。当用户转到这里时,我想在models.py中的字段中添加一个。下面是models.py:

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.IntegerField(default=0)
    people_read = models.IntegerField(default=0) # Add one to this data
    user_liked = models.ManyToManyField(User, related_name='user_liked')
    user_disliked = models.ManyToManyField(User, related_name='user_disliked')

    def __str__(self):
        return self.title

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

和views.py:

class PostDetailView(DetailView):
    model = Post
    post = get_object_or_404(Post, pk=pk)
    post.people_read = post.people_read + 1
    post.save()

这样做的问题是它无法获得pk id。那么如何在类中获得posts pk,或者在转到url时是否有其他方法添加到模型字段?谢谢


Tags: pyselfdefaulturlreadtitlemodelspeople
1条回答
网友
1楼 · 发布于 2024-06-02 07:24:25

这对我很有用:

class PostDetailView(DetailView):
    model = Post

    def get_object(self):
        obj = super().get_object()
        obj.blog_view += 1
        obj.save()
        return obj

这对我来说很有效,我得到了自我的对象,它也有效,我能够使用它

相关问题 更多 >