我正在使用 Tastypie 构建一个 API。
我创建了一个资源,但由于某种原因,每当我发出 POST 请求时,它总是会创建一个资源,即使它返回错误也是如此。
例如,我收到以下错误:
“作者”字段没有数据并且不允许空值
但是当我在管理控制台中检查资源时,它显示它创建了资源并将“作者”字段设置为空白。
如果缺少参数,我需要 POST 请求失败并且不创建资源。
默认情况下,模型中的所有字段都是空白=False 和 null=False。
编辑
这是我正在使用的模型:
class Story(models.Model):
title = models.CharField(max_length=50)
authors = models.ManyToManyField(Author, related_name='stories')
cover_photo_url = models.URLField(max_length = 200)
这是我的资源:
class StoryResource(ModelResource):
authors = fields.ToManyField(SimpleAuthorResource, 'authors', full=True)
posts = fields.ToManyField(PostResource, 'posts', full=True, blank=True)
class Meta:
queryset = Story.objects.all()
resource_name = 'story'
authorization = Authorization()
def determine_format(self, request):
return "application/json"
我提出以下要求:
curl -X POST --header "Content-type:application/json"
--data '{"title" : "cool new story", "cover_photo_url":"hello.png"}'
http://localhost:8000/api/v1/story/
现在我一直在尝试其他一些事情。包括验证,这导致了它自己的一系列问题。如果我尝试使用缺少的必需参数进行 POST,即使没有验证,行插入也不应该失败吗?