0

我有一个资源,我试图在其中公开它的选票。

class ViewPostResource(ModelResource):
    user = fields.ForeignKey(UserResource,'user',full=True)
    votes = fields.ToOneField('voting.resources.GetVotesResource', attribute='vote_set', full=True)
    class Meta:
        queryset = UserPost.objects.all()
        resource_name = 'posts'
        include_resource_uri = False

class GetVotesResource(ModelResource):
    user = fields.ForeignKey(UserResource,'user', full=True)

    class Meta:
        queryset = Vote.objects.all()
        resource_name = 'vote'

不过,我的投票模型与正常情况有些不同。如何使用以下模型设置公开帖子的投票?

class Vote(models.Model):
    user         = models.OneToOneField(User, related_name='vote')
    content_type = models.ForeignKey(ContentType)
    object_id    = models.PositiveIntegerField()
    object       = generic.GenericForeignKey('content_type', 'object_id')
    vote         = models.SmallIntegerField(choices=SCORES)
4

1 回答 1

2

我将改用“脱水”:

    def dehydrate(self, bundle):
        bundle.data['votes'] = Vote.objects.filter(object_id=bundle.obj.id, content_type=n).count() // or use aggregate to get total votes.
        return bundle.date

将“n”替换为正确的内容类型。

于 2012-09-20T01:49:50.643 回答