2013-06-12 62 views
0

我正在使用tastypie并创建了我的第一个资源。但我该如何做到以下几点:Django API tastypie和FK POST

用户名在URL上传递,在帖子上我想'保存'之前做'的东西'。 tastypie有这个方法吗?

class CommonMeta: 
    authentication = ApiKeyAuthentication() 
    authorization = UserObjectsOnlyAuthorization() 



class SMSResource(ModelResource): 
    class Meta(CommonMeta): 
     queryset = Batch.objects.all() 
     resource_name = 'sms' 
     list_allowed_methods = ['get', 'post'] 
     detail_allowed_methods = ['get'] 

型号:

content = models.TextField(validators=[validate_GSM_characters]) 
    type = models.CharField(max_length=16, choices=TYPES, 
          default="Standard", null=True, blank=True) 
    priority = models.CharField(max_length=16, choices=PRIORITIES, 
           default="Normal", null=True, blank=True) 
    status = models.CharField(max_length=16, choices=STATUSES, 
           default="Pending", null=True, blank=True) 

    created = models.DateTimeField(auto_now_add=True, help_text="Shows when object was created.") 
    schedule = models.DateTimeField(blank=True, null=True, help_text="Shows when object was created.") 

    #FK 
    sender_name = models.ForeignKey(Originator) 
    user = models.ForeignKey(User) 
+0

我们需要你的模型能够看到你指的是什么,你的问题不是那么清楚。 –

+0

增加了模型更新的问题:) – GrantU

+0

目前仍不清楚你想要做什么。你可以包含你试图发送给你的服务器的Json,以及你试图从FK创建的东西吗? –

回答

1

只要你的帖子包含创建一个User对象所需要的全部信息,它会自动创建。如果没有,则可以使用obj_create方法遍历JSON并手动创建用户对象。

+0

没有美味的派有一个我需要添加重写它的后期方法吗?即post_data()添加到资源类? – GrantU

+0

@ User7 TastyPie开箱即可处理POST。如果您以POST的形式向您的API端点发送curl请求,则可以自行测试。您无需为POST编写特定的覆盖。当TastyPIE收到针对“列表”URL的POST时,它会自动尝试为该资源创建一个新对象。 –

+0

没错,但是我想在有效的用户等帖子之前做点东西。 – GrantU