[python] Django-POST 요청에서 값 가져 오기

다음 장고 템플릿이 있습니다 (http : // IP / admin / start /는 view라는 가상 뷰에 할당됩니다).

{% 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 %}

sources는 IS objects.all()장고 모델의 뷰에서 참조된다. “시작”제출 입력을 클릭 할 때마다 “시작”뷰가 {{ source.title}}렌더링 된 페이지를 반환하기 전에 함수 의 데이터 를 사용하기를 원합니다 . 게시 된 정보 (이 경우 숨겨진 입력)를 Python 변수로 수집하려면 어떻게해야합니까?



답변

뷰가 수신하는 요청 객체에 대해 읽어보십시오 : https://docs.djangoproject.com/en/dev/ref/request-response/#httprequest-objects

또한 숨겨진 필드에는 신뢰할 수있는 이름과 값이 필요합니다.

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

그런 다음보기에서 :

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


답변

프런트 엔드에서 작업을 수행해야하는 경우 양식의 onsubmit 이벤트에 응답 할 수 있습니다. 관리자 / 시작에 게시하는 경우 요청 개체를 통해보기에서 게시 변수에 액세스 할 수 있습니다. post 변수의 사전 인 request.POST


답변

장고 양식의 경우 이렇게 할 수 있습니다.

form = UserLoginForm(data=request.POST) #getting the whole data from the user.
user = form.save() #saving the details obtained from the user.
username = user.cleaned_data.get("username") #where "username" in parenthesis is the name of the Charfield (the variale name i.e, username = forms.Charfield(max_length=64))


답변