【问题标题】:How to get value in variable from Django template in views.py?如何从views.py中的Django模板获取变量中的值?
【发布时间】:2020-03-12 08:31:09
【问题描述】:

我在 django 工作,想在 views.py 中传递值 我的代码是

模板

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

查看

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

这不是返回医生.contactNumber的值,错误是方法对象不可下标

【问题讨论】:

标签: python django django-templates


【解决方案1】:

doctor.contactNumber 是一个,而不是您应该用来查找值或作为输入字段名称的键。给输入字段一个更好的名称并改用它。您还使用了错误的输入类型,如果您不希望它被编辑,请使用hidden,或者如果可以,请使用text

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

request.POST.get("contactNumber")

【讨论】:

    【解决方案2】:

    这是错误的,

    <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')
    

    【讨论】:

      【解决方案3】:

      很正常,request.POST.get是一个方法。使用括号。正确的调用是:

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

      对于您的输入,您混淆了namevalue。改为这样做:

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

      【讨论】:

        【解决方案4】:
        <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}} 代替值,并且您必须使用 name(request.POST.get("number")) 获取数据,然后它将获取数据

        【讨论】:

          猜你喜欢
          • 2015-11-01
          • 1970-01-01
          • 2017-09-14
          • 1970-01-01
          • 1970-01-01
          • 2014-10-08
          • 2018-09-23
          • 2012-04-07
          • 2018-05-21
          相关资源
          最近更新 更多