models.FileField フィールドと、ファイルをサーバーにアップロードするために使用されるフォームを持つ django ファイル モデルがあります。
class UploadFile(model.Model):
filename = models.FileField(upload_to='uploads')
description = models.CharField(max_length=38, blank=True)
class UploadFileForm(ModelForm):
class Meta:
model = UploadFile
fields = ('filename', 'description')
ビュー関数は次のようになります。
def upload_file(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
new_file = form.save()
ここで、標準ライブラリのみを使用して、上記のビュー関数を使用して UploadFile モデルにファイルをアップロードする Python スクリプトが必要です。ただし、POST 要求には FILES メソッドがないため、このコードは機能しません。
import urllib, urllib2
data = urllib.urlencode({'filename': open(uploadfile, "rb"),
'description': 'upload test'})
post_req = urllib2.Request(upload_file_url, data)
result = urllib2.urlopen(post_req)
POST リクエストに FILES メソッドを追加して、Python スクリプトを使用してファイルをアップロードするにはどうすればよいですか? また、フォームを使用しない別のビュー関数を作成しようとしましたが、どちらも機能していません。