簡體   English   中英

Django 訪問 class 中的 pk id

[英]Django access pk id in class

我有這個網站,我希望能夠有意見。 當您從 go 到 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。 那么如何在 class 中獲取帖子 pk,或者在轉到 url 時是否有其他方法可以添加到模型字段? 謝謝。

這對我有用:

class PostDetailView(DetailView):
    model = Post

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

這對我有用,我 get_object of self 並且它有效並且我能夠使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM