Как получить значение в переменной из Django шаблона в views.py? - PullRequest
0 голосов
/ 12 марта 2020

Я работаю в django и хочу передать значение в views.py мой код

template

     {% for doctor in doctor_list %}
       {% if citysearch == doctor.city %}
         <h1>Name of doctor is </h1>
          <form class="form" method="POST">
                  {% csrf_token %}
             <input type="submit", class="btn view", name="{{doctor.contactNumber}}" value="View Profile">
          </form>
        {% endif %}
        {% endfor %}

view

    if request.method == 'POST':
        selectdocnum = request.POST.get["doctor.contactNumber"]
        print(selectdocnum)
        return redirect('patientPannel')

Это не возвращает значение doctor.contactNumber, а ошибка означает, что объект метода не является допустимым

Ответы [ 4 ]

0 голосов
/ 12 марта 2020
<input type="submit", class="btn view", name="number" value="{{doctor.contactNumber}}">
if request.method == 'POST':
    selectdocnum = request.POST.get("number")
    print(selectdocnum)
    return redirect('patientPannel')

вместо значения вы должны использовать {{doctor.contactNumber}}, и вы должны получить данные, используя имя (request.POST.get ("number")), тогда он получит данные

0 голосов
/ 12 марта 2020

это неправильно,

<input type="submit", class="btn view", name="{{doctor.contactNumber}}" value="View Profile">

я думаю, что вы должны сделать это

 {% for doctor in doctor_list %}
   {% if citysearch == doctor.city %}
     <h1>Name of doctor is </h1>
      <form class="form" method="POST">
              {% csrf_token %}
         <input type="text" value="{{doctor.contactNumber}}" name="doctorcontactnumber">
         <input type="submit" class="btn view" value="View Profile">
      </form>
    {% endif %}
    {% endfor %}

ваши взгляды

    if request.method == 'POST':
    selectdocnum = request.POST.get["doctorcontactnumber"]
    print(selectdocnum)
    return redirect('patientPannel')
0 голосов
/ 12 марта 2020

Это нормально, request.POST.get - это метод. Используйте скобки. Правильный вызов:

selectdocnum = request.POST.get("doctorcontactnumber")

Для вашего ввода вы перепутали name и value. Сделайте это вместо:

<input type="hidden" name="doctorcontactnumber" value="{{doctor.contactNumber}}">
0 голосов
/ 12 марта 2020

doctor.contactNumber - это значение , а не ключ, который вы должны использовать для поиска значения или в качестве имени для поля ввода. дать поле ввода лучшее имя и использовать его вместо этого. Вы также используете неправильный тип ввода: либо используйте hidden, если вы не ожидаете, что он будет отредактирован, либо что-то вроде text, если это возможно.

<input type="hidden" name="contactNumber" value="{{doctor.contactNumber}}">

request.POST.get("contactNumber")
...