所以我创建了一个简单的模型如下
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=('', '')
由于我没有提供所需的字段,这不应该失败吗?
答案 0 :(得分:1)
当我尝试创建一个新对象时,它可以工作,但是如果我弄乱了任何字段,它仍然可以工作
发布数据可以有N个。的领域。这取决于你如何处理它们。
由于我没有提供所需的字段,这不应该失败吗?
没有。当为ModelResource发出POST请求时,它将被路由到obj_update,然后被路由到obj_create,除非它被覆盖。它从** kwargs获取价值并创建模型条目。在你的情况下,它不存在空字符串。
供参考,请查看文档: https://django-tastypie.readthedocs.io/en/latest/non_orm_data_sources.html