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 に答える