Tastypie POST不会失败

时间:2017-10-27 05:25:17

标签: python django tastypie

所以我创建了一个简单的模型如下

class Titles(models.Model):
    titleID = models.CharField(max_length=20,primary_key=True)
    title = models.CharField(max_length=100)
    class Meta:
        verbose_name = "Titles"
        verbose_name_plural = verbose_name
    def __str__(self):
        return self.title  

将其作为API公开

class TitlesResource(AT.MultipartResource,AT.WrapView,ModelResource):
    class Meta:
        queryset = coreModels.Titles.objects.all()
        authentication = AT.cxenseAMSAPIAuthentication()
        authorization=Authorization()
        resource_name = 'titles'
        allowed_methods = ['get','post','put','patch']
        include_resource_uri=False
        limit=1000 

当我尝试创建一个新对象时,它可以工作,但是如果我弄乱了任何字段,它仍然可以工作

例如:

http://localhost:8000/core/titles/

    {
      "I_am_not_suppling_a_correct_feild": "2",
      "title_not": "dept 1"
    }

[27/Oct/2017 10:54:12] DEBUG [django.db.backends:90] (0.001) UPDATE "core_titles" SET "title" = '' WHERE "core_titles"."titleID" = ''; args=('', '')

由于我没有提供所需的字段,这不应该失败吗?

1 个答案:

答案 0 :(得分:1)

  

当我尝试创建一个新对象时,它可以工作,但是如果我弄乱了任何字段,它仍然可以工作

发布数据可以有N个。的领域。这取决于你如何处理它们。

  

由于我没有提供所需的字段,这不应该失败吗?

没有。当为ModelResource发出POST请求时,它将被路由到obj_update,然后被路由到obj_create,除非它被覆盖。它从** kwargs获取价值并创建模型条目。在你的情况下,它不存在空字符串。

供参考,请查看文档: https://django-tastypie.readthedocs.io/en/latest/non_orm_data_sources.html