函数在models.py中进入admin,所以我可以控制

时间:2016-03-10 07:56:12

标签: django

我有一个这样的模型

class Post(models.Model):
    title = models.CharField(max_length = 50)

    def get_vote_count(self):
        """This function is intended to return count of voted on thread.
        :return: The sum of vote, upvote - devote
        """
        vote_count = self.vote_set.filter(is_up=True).count() - self.vote_set.filter(is_up=False).count() +1
        if vote_count >= 0:
            return "+ " + str(vote_count)
        else:
            return "- " + str(abs(vote_count))

并且vote_count正在显示; post.get_vote_count,我希望能够在我的admin.py中控制它。

我试过这样的

class PostAdmin(admin.ModelAdmin):
    fields = ['vote_count']

    class Meta:
        model = Post

但没有显示任何内容,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

使用moidel方法时,您还需要将它们添加到readonly_fields列表中。

class PostAdmin(admin.ModelAdmin):
    fields = ['vote_count']
    readonly_fields = ['vote_count']
    class Meta:
        model = Post

https://docs.djangoproject.com/en/1.9/ref/contrib/admin/#django.contrib.admin.ModelAdmin.readonly_fields