Python Django tastypie,包括通用外键字段结果

Python Django tastypie,包括通用外键字段结果,python,django,tastypie,Python,Django,Tastypie,在Tastypie文档中,有一个通用外键用法示例: from django.db import models from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes import generic class TaggedItem(models.Model): tag = models.SlugField() content_type = models.

在Tastypie文档中,有一个通用外键用法示例:

from django.db import models
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic

class TaggedItem(models.Model):
    tag = models.SlugField()
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = generic.GenericForeignKey('content_type', 'object_id')

    def __unicode__(self):
        return self.tag
和模型资源:

from tastypie.contrib.contenttypes.fields import GenericForeignKeyField
from tastypie.resources import ModelResource

from .models import Note, Quote, TaggedItem


class QuoteResource(ModelResource):

    class Meta:
        resource_name = 'quotes'
        queryset = Quote.objects.all()


class NoteResource(ModelResource):

    class Meta:
        resource_name = 'notes'
        queryset = Note.objects.all()


class TaggedItemResource(ModelResource):
    content_object = GenericForeignKeyField({
        Note: NoteResource,
        Quote: QuoteResource
    }, 'content_object')

    class Meta:
        resource_name = 'tagged_items'
        queryset = TaggedItem.objects.all()
现在,我能够获得以下方面的结果:

---->'/api/v1/taged_items/?note__slug=dadad'

但我找不到一种方法将标记的_项包含到以下结果中:

---->“/api/v1/note/1/”


您必须将反向通用字段添加到
注释
模型:

from django.contrib.contenttypes import generic

class Note(models.Model):
    tags = generic.GenericRelation(TaggedItem)
    [...]
然后将
ToManyField
添加到
NoteResource

class NoteResource(ModelResource):
    tags = fields.ToManyField('myapp.api.resources.TaggedItemResource', 
                              'tags')
    class Meta:
        resource_name = 'notes'
        queryset = Note.objects.all()