2011-09-01 2 views
0

다음 변수 폼을 포함하는 템플릿 폼이 있습니다.처리하기 전에 폼에 변수를 전달하는 방법

<form action="https://me.s3.amazonaws.com/" method="post" enctype='multipart/form-data' class="upload-form"> 
    <input type="hidden" name="key" value="videos/{{filename}}"> 
    <input type="hidden" name="AWSAccessKeyId" value="{{access_key}}"> 
    <input type="hidden" name="acl" value="public-read"> 
    <input type="hidden" name="policy" value="{{policy}}"> 
    <input type="hidden" name="signature" value="{{signature}}"> 
    <input type="hidden" name="Content-Type" value="{{content_type}}"> 
    <input name="file" type="file"> 
    <input type="submit" value="Upload" name="upload"> 
</form> 

그러나 제출 버튼이 눌려지면 양식이 아마존에게 전송되고 변수를 전달할 수 없습니다. 이것은 내가 실패, 할 노력했습니다 것입니다 -

if 'upload' in request.POST: 
     policy = base64.b64encode(...) 
     signature = base64.b64encode(
      hmac.new('secret_key', policy, sha).digest()) 
     file = request.POST['files'] 
     filename=file.name 
     content_type=mimetypes.guess_type(filename)[0] 

내가 POST 요청 후 형태로 변수를 전달하려면 어떻게해야하지만 아마존 양식을 처리하기 전에합니까? 고맙습니다.

답변

2

당신은 https://me.s3.amazonaws.com/에 당신이 할 수 다시 게시 장고보기로하고보기에서 양식의 작업을 변경해야합니다

def upload(request): 
    # Your treatment here. 
    # Post the data to amazon S3. 
    urllib2.urlopen("https://me.s3.amazonaws.com/", your_data) 
    ... 
+1

좋습니다. 감사합니다. 정확히'your_data'는 정확히 사전입니까, 아니면 어떻게 전달합니까? 고맙습니다. – David542

+0

@ David542 : 예 urllib2.urlopen에 전달되면 게시물 요청을 할 수있는 사전입니다. 관련 [doc] [http://docs.python.org/library/urllib2.html#urllib2]를 확인할 수 있습니다. 자세한 정보는 urlopen]을 참조하십시오. – mouad

0

POST로 양식을 자신의보기 중 하나로 변경 한 다음보기에서 사후 처리를 수행 한 다음보기 코드 내에서 urllib2을 사용하여 정확한 값으로 Amazon에 POST를 발행 할 수 있습니다. 비슷한. 당신의 view.py에서 템플릿

<form action="http://mywebsite/upload" method="post" ... 

에서

:

관련 문제