我正在尝试为我的管理视图定义一个代理模型,并让它只显示具有一定数量外键值的对象。
这是我正在尝试的,但我无法过滤 yVotes:
class Post(models.Model):
title = models.CharField(max_length=512)
class PostVote(models.Model):
post = models.ForeignKey(Post)
vote = models.CharField(max_length=1)
class VotedPost(models.Post):
def _yVotes(self):
return models.PostVote.objects.filter(post=self, vote='Y').count()
yVotes = property(_yVotes)
class Meta:
proxy = True
class VotedPostAdmin(PostAdmin):
list_display = ('title', 'yVotes')
def queryset(self, request):
return self.model.objects.filter(yVotes__gt=0)
所以我的最终结果是当你浏览到 VotedPost 的 /admin 页面时,它只会显示超过 0 个“Y”票的帖子。注释掉 VotedPostAdmin 中的查询集,yVotes 的正确值将显示在 list_display 中。
提前致谢!