【问题标题】:Django API tastypie and FK POSTDjango API 美味派和 FK POST
【发布时间】:2013-06-12 12:45:08
【问题描述】:

我正在使用tastepie,我已经创建了我的第一个资源。但是我该怎么做:

用户名在 URL 上传递,在帖子中我想在保存之前“做一些事情”。 sweetpie 有这个方法吗?

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)

【问题讨论】:

  • 我们需要您的模型能够看到您所指的内容,您的问题并不清楚。
  • 添加模型更新问题:)
  • 目前还不清楚您要做什么。您能否包含您尝试发送到服务器的 Json 以及您尝试从 FK 创建的内容?

标签: python django tastypie


【解决方案1】:

只要您的 POST 包含创建用户对象所需的完整信息,它就应该自动创建。如果没有,您可以使用 obj_create 方法遍历 JSON 并手动创建用户对象。

【讨论】:

  • 有没有我需要添加的 post 方法来覆盖它?即 post_data() 添加到资源类?
  • @User7 开箱即用,TastyPie 处理 POST。如果您将 curl 请求作为 POST 发送到您的 API 端点,您可以自己进行测试。您无需为 POST 编写特定的覆盖。当 TastyPIE 收到针对“列表”URL 的 POST 时,它会自动尝试为该资源创建一个新对象。
  • 对,但我想在发布有效用户等帖子之前做一些事情。这可能吗?
  • 补水?这是我需要的吗?
  • @User7 您可以在obj_create 方法或hydrate 中验证用户。
猜你喜欢
  • 2012-05-31
  • 1970-01-01
  • 2013-03-28
  • 1970-01-01
  • 2014-03-15
  • 2013-03-25
  • 1970-01-01
  • 2012-10-30
  • 2014-01-23
相关资源
最近更新 更多