ImageFieldを使用して単純なモデルを作成しましたが、django-rest-framework + django-rest-swaggerを使用してapiビューを作成したいと考えています。 。ここでDjango RESTフレームワーク+ Django REST Swagger + ImageField
は、私が得たものである:
models.py
from django.utils import timezone
from django.db import models
class MyModel(models.Model):
source = models.ImageField(upload_to=u'/photos')
is_active = models.BooleanField(default=False)
created_at = models.DateTimeField(default=timezone.now)
def __unicode__(self):
return u"photo {0}".format(self.source.url)
serializer.py
from .models import MyModel
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = [
'id',
'source',
'created_at',
]
views.py
from rest_framework import generics
from .serializer import MyModelSerializer
class MyModelView(generics.CreateAPIView):
serializer_class = MyModelSerializer
parser_classes = (FileUploadParser,)
def post(self, *args, **kwargs):
"""
Create a MyModel
---
parameters:
- name: source
description: file
required: True
type: file
responseMessages:
- code: 201
message: Created
"""
return super(MyModelView, self).post(self, *args, **kwargs)
urls.py
from weddings.api.views import MyModelView
urlpatterns = patterns(
'',
url(r'^/api/mymodel/$', MyModelView.as_view()),
)
これはかなり簡単にする必要があります。しかし、私はアップロード作業をすることはできません。ヘッダーは、要求ペイロードにジャンゴ - 休息 - 闊歩によって渡されているが
If the view used with FileUploadParser is called with a filename URL keyword argument, then that argument will be used as the filename. If it is called without a filename URL keyword argument, then the client must set the filename in the Content-Disposition HTTP header. For example Content-Disposition: attachment; filename=upload.jpg.
:私はdjango-rest-frameworkからドキュメントのこの部分を読んだ
:私は常に、このエラー応答を取得しますプロパティ(クロムコンソールから)
さらに詳しい情報が必要な場合は、私にお知らせください。
私はDjango==1.8.8
,djangorestframework==3.3.2
およびdjango-rest-swagger==0.3.4
を使用しています。
に
FileUploadParser
からパーサーを変更したあなたは枕がインストールされていますか?私はdjango restが画像ファイルを処理するためにそれを必要とすると信じています https://pypi.python.org/pypi/Pillow –ありがとうチャールズ..しかし、はい、私は枕がインストールされています。 – jarussi