大佬教程收集整理的这篇文章主要介绍了包括在Django Tastypie API子资源,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
您正在寻找相关领域:http://django-tastypie.readthedocs.org/en/latest/fIElds.HTML#relationship- fIElds
我打算使用Django和Tastypie一个网站的REST API,和我有一个艰难的时间搞清楚了“正确”的方式包括在返回的资源子资源。
作为一个沙箱中,我做了一个小的应用程序了票务模型和TicketComment模型,其中的意见属于一票。我看着嵌套资源(http://django-
tastypie.readthedocs.org/en/latest/cookbook.html#nested-
resources)的Tastypie食谱配方,但我有一个很难理解为什么我应该做的。以下用途django.forms.models.model_to_Dict()的代码,以获得注释到票,但我想必须有一个“疑难杂症”这里的某个地方。
是否有一个原因,@R_673_9190@我现在正在做什么?此外,有没有这种更清洁,感觉比模式什么的食谱上市?
型号如下:
# tickets/models.py
from django.db import models
class Ticket(models.Model):
title = models.CharField(max_length=200)
create_ts = models.datetiR_243_11845@eField(auto_now_add=TruE)
submitter_email = models.EmailField()
PRIORITY_CHOICES = (
('H','High'),('M','Medium'),('L','Low'),)
priority = models.CharField(max_length=1,choices=PRIORITY_CHOICES)
description = models.TextField()
STATUS_CHOICES = (
('NEW','New & Unclaimed'),('WIP','Work In Progress'),('RES','Resolved'),('CLS','Closed'),)
status = models.CharField(max_length=3,choices=STATUS_CHOICES)
def __unicode__(self):
return "<Ticket:%d:%s>" % (self.id,self.title,)
class TicketComment(models.Model):
ticket = models.ForeignKey(Ticket)
comment_ts = models.datetiR_243_11845@eField(auto_now_add=TruE)
commenter_email = models.EmailField()
comment = models.TextField()
def __unicode__(self):
return "<TicketComment:%d:%d>" % (self.ticket.id,self.id,)
资源如下:
# tickets/api.py
from tastypie import fields
from tastypie.resources import Modelresource
from tickets.models import Ticket,TicketComment
from django.forms.models import model_to_Dict
class Ticketresource(ModelresourcE):
class Meta:
queryset = Ticket.objects.all()
resource_name = 'ticket'
def dehydrate(self,bundlE):
comments = TicketComment.objects.filter(ticket=bundle.data['id'])
bundle.data['comments'] = [model_to_Dict(C) for c in comments]
return bundle
class TicketCommentresource(ModelresourcE):
ticket = fields.ForeignKey(Ticketresource,'ticket')
class Meta:
queryset = TicketComment.objects.all()
resource_name = 'comment'
输出如下:
{
comments: [
{
comment: "This is the first comment.",commenter_email: "me@example.com",id: 1,ticket: 1
},{
comment: "This is the second comment.",id: 2,ticket: 1
}
],create_ts: "2011-10-17T15:55:11.372000",description: "This is the first ticket.",id: "1",priority: "M",resource_uri: "/api/v1/ticket/1/",status: "NEW",submitter_email: "me@example.com",title: "First Ticket"
}
以上是大佬教程为你收集整理的包括在Django Tastypie API子资源全部内容,希望文章能够帮你解决包括在Django Tastypie API子资源所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。