2012-07-05 38 views
42

Tôi có mẫu django sau (http: // IP/admin/bắt đầu/được gán cho một cái nhìn gọi là xem giả thuyết):Django - lấy giá trị từ yêu cầu POST

{% for source in sources %} 
    <tr> 
    <td>{{ source }}</td> 

    <td> 
    <form action="/admin/start/" method="post"> 
     {% csrf_token %} 
     <input type="hidden" name="{{ source.title }}"> 
     <input type="submit" value="Start" class="btn btn-primary"> 
    </form> 
    </td> 

    </tr> 
{% endfor %} 

sourcesobjects.all() của một Mô hình Django được tham chiếu trong chế độ xem. Bất cứ khi nào một đầu vào "Bắt đầu" gửi được nhấp vào, tôi muốn chế độ xem "bắt đầu" sử dụng dữ liệu {{ source.title}} trong một hàm trước khi trả về một trang được hiển thị. Làm cách nào để thu thập thông tin được POST (trong trường hợp này, trong đầu vào bị ẩn) vào các biến Python?

Trả lời

78

Tìm hiểu về đối tượng yêu cầu rằng quan điểm của bạn nhận được: https://docs.djangoproject.com/en/dev/ref/request-response/#httprequest-objects

Ngoài lĩnh vực tiềm ẩn của bạn cần một tên đáng tin cậy và sau đó là một giá trị:

<input type="hidden" name="title" value="{{ source.title }}"> 

Sau đó, trong một chế độ xem:

request.POST.get("title", "") 
9

Nếu bạn cần làm điều gì đó ở giao diện người dùng, bạn có thể trả lời sự kiện onsubmit của biểu mẫu của bạn. Nếu bạn chỉ đăng tải lên admin/start, bạn có thể truy cập các biến post trong khung nhìn của bạn thông qua đối tượng yêu cầu. request.POST đó là một cuốn từ điển của bài biến

+0

Câu trả lời khác đã giúp tôi giải quyết vấn đề tôi định yêu cầu (định nghĩa về bộ chọn tên/giá trị html) trước khi tôi hỏi, vì vậy tôi sẽ tiếp tục đánh dấu rằng một trong những chấp nhận. Cám ơn sự giúp đở cuả bạn. :) –

Các vấn đề liên quan