3
Pythonスクリプトから画像をDjangoにアップロードしようとしています。私は見つけた解決策をいくつか試しましたが、どれもうまくいきませんPythonスクリプトからDjangoに画像をアップロード
これは私の単純化したモデルである:
class ExampleModel(models.Model):
address = models.CharField(
_('address'),
max_length=200,
blank=True,
)
photo = models.ImageField(
verbose_name='photo',
upload_to=path_for_photo,
null=True,
blank=True,
validators=[FileValidator(max_size=settings.MAX_PHOTO_SIZE,
allowed_mimetypes=settings.ALLOWED_CONTENT_TYPES,
allowed_extensions=settings.ALLOWED_EXTENSIONS),]
)
さて、私の見解では、このようなものです:
def update(self, request, *args, **kwargs):
instance = self.get_object()
serializer = self.get_serializer(instance, data=request.data, partial=partial)
serializer.is_valid(raise_exception=True)
self.perform_update(serializer)
return Response(serializer.data)
これは私がPythonで持っているスクリプトです:
with open('test.jpg', 'rb') as payload:
headers = {'content-type': 'application/x-www-form-urlencoded'}
files = {
'file': payload,
'Content-Type': 'image/jpeg'
}
r = requests.put('http://localhost:8000/v1/myendpoint',
auth=('[email protected]', 'example'),
verify=False, files=files, headers=headers)
しかし、私私の更新方法を変更して画像を更新する方法を知らない私はいくつかのアプローチを試みました:jsonとして(コンテンツタイプを変更し、requests.putの 'data'パラメータに情報を送信する)、InMemoryUploadedFileとして送信してください。まわり。
Pythonの簡単な画像をアップロードするのは難しいとは思っていませんでした。私はhtml形式で同じことを簡単に行うことができますが、私はpythonスクリプトからそれを置く必要があります。
タンクは@blazaidです。私のヘッダーが問題でした。ベスト。 – mcamacho