Python 如何在Tastypie中声明子资源?

Python 如何在Tastypie中声明子资源?,python,django,api,rest,tastypie,Python,Django,Api,Rest,Tastypie,我有这个models.py: from django.db import models class Item(models.Model): text = models.TextField() class Note(models.Model): text = models.TextField() items = models.ManyToManyField(Item) import tastypie from tastypie.resources import Mod

我有这个
models.py

from django.db import models

class Item(models.Model):
    text = models.TextField()

class Note(models.Model):
    text = models.TextField()
    items = models.ManyToManyField(Item)
import tastypie
from tastypie.resources import ModelResource
from tastypie.api import Api
from main.models import Item, Note

class ItemResource(ModelResource):
    class Meta:
        resource_name = 'items'
        queryset = Item.objects.all()

class NoteResource(ModelResource):
    items = tastypie.fields.ToManyField(ItemResource, 'items', full=True)

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

api = Api(api_name='v1')
api.register(NoteResource())
这个
api.py

from django.db import models

class Item(models.Model):
    text = models.TextField()

class Note(models.Model):
    text = models.TextField()
    items = models.ManyToManyField(Item)
import tastypie
from tastypie.resources import ModelResource
from tastypie.api import Api
from main.models import Item, Note

class ItemResource(ModelResource):
    class Meta:
        resource_name = 'items'
        queryset = Item.objects.all()

class NoteResource(ModelResource):
    items = tastypie.fields.ToManyField(ItemResource, 'items', full=True)

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

api = Api(api_name='v1')
api.register(NoteResource())
我希望唯一的端点为:

/api/v1/notes/4/items

/api/v1/notes/4/items/2

没有
/api/v1/items/?note=4

我一直在阅读Tastypie文档,但没有找到任何相关信息

文档推荐我在这里发布的URL表单

我如何才能做到这一点?

使用(子孙后代,请参见OP上的注释),子资源声明如下(简单示例):

首先,我强烈建议您只需遵循以下步骤。它将为您提供100%的所需内容,包括自定义URL、自定义序列化输出等


Tasty pie是一个伟大的项目,创作者丹尼尔·林斯利(Daniel Lindsley)是一个非常聪明的人(我曾与他共事过一段时间),但就像其他所有伟大的项目一样,有人来了,用一些新的东西让我们大吃一惊。

你可能想看看@orokusaki好的,我已经读了很多了。它看起来比Tastypie好多了。你能为我指出使用restframework进行此操作的正确方向吗?我刚刚为你添加了一个答案,并提供了更多信息。