【发布时间】:2012-07-13 12:04:08
【问题描述】:
我正在尝试为我的管理视图定义一个代理模型,并让它只显示具有一定数量外键值的对象。
这是我正在尝试的,但我无法过滤 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 的帖子。注释掉 VotedPostAdmin 中的查询集,yVotes 的正确值将显示在 list_display 中。
提前致谢!
【问题讨论】:
标签: django django-models django-admin django-queryset