我正在使用django-restless,我想在POST请求中传递图像。
我在文档中搜索了一些与请求中传递文件/图像相关的内容,但我无法找到。
有人可以帮助我如何使用django-restless with images?
仅供参考,我的模特:
class MyModel(models.Model):
prefix = models.CharField('prefix', max_length=10, unique=True, editable=False, null=True)
input_image = models.ImageField('Input image')
我的资源:
class MyModelResource(DjangoResource):
preparer = FieldsPreparer(fields={
'input_image': 'input_image_url',
'id': 'id',
})
def is_authenticated(self):
return True
@skip_prepare
def list(self):
return list(MyModel.objects.all().values('id'))
def update(self):
raise MethodNotAllowed()
def delete(self):
raise MethodNotAllowed()
def detail(self, pk):
return MyModel.objects.get(id=pk)
def create(self):
input_image = SimpleUploadedFile('', base64.b64decode(self.data['input_image']), "application/octet-stream")
return CountProcess.objects.create(input_image=input_image)
它现在不能正常工作......
答案 0 :(得分:0)
我意识到django-restless支持多部分表单数据。我解决了创建常规ModelForm
并将其添加到Resource
的问题:
class MyModelResource(DjangoResource):
preparer = FieldsPreparer(fields={
'input_image': 'input_image_url',
'id': 'id',
})
def is_authenticated(self):
return True
@skip_prepare
def list(self):
return list(MyModel.objects.all().values('id'))
def update(self):
raise MethodNotAllowed()
def delete(self):
raise MethodNotAllowed()
def detail(self, pk):
return MyModel.objects.get(id=pk)
def create(self):
form = MyModelForm(self.request, self.data, self.request.FILES)
obj = None
if form.is_valid():
obj = form.save()
return obj