繁体   English   中英

如何从 django 表中获取当前值

[英]How to get current value from django table

单击删除按钮后,我只能从 django 表中获取最后一个值。

.html 文件 -

<body>

  <div class="for-body">
    <!-- test table -->
    <form method="POST" action="">
      {% csrf_token %}
      
      <input id="label" name="engname" value="{{ eng_name }}">{{ eng_name }}</input>
      <button name="update" class="add-button" type="submit"><b>Update</b></button>
      <button name="add" class="add-button1" type="submit"><b>Add Existing User</b></button>

    
    
    
      <tbody class="for-tbody1">
          <tr class="for-tr1">
            <td class="for-td1">
              <dh-components-grid-body-render class="for-dhcomp">
                <div class="for-div1">
                  <table class="for-table1" id="pgnum">
                    <thead class="for-thead1">
                        <tr class="for-tr2">
                        <td class="for-td2"><div class="dh-grid-headers-cell-default">User</div></td>
                        <td class="for-td2"><div class="dh-grid-headers-cell-default">Email</div></td>
                        <td class="for-td2"><div class="dh-grid-headers-cell-default">Role</div></td>
                        <td class="for-td2"><div class="dh-grid-headers-cell-default">Remove</div></td>                          
                      </tr>
                    </thead>
                    
                    <tbody class="for-tbody2">

                     
                      <tr class="for-tr3">
                        {% for i in user_list %}
                        <td class="for-td3"><div class="cell-default-style">{{i.first_name}} {{i.last_name}}</div></td>
                        <td class="for-td3"><div class="cell-default-style"><input type="hidden" value="{{ i.email }}" name="email">{{i.email}}</input></div></td>
                        {% if i.is_superuser == True %}
                        <td class="for-td3"><div class="cell-default-style">Super User</div></td>
                        {% elif i.is_staff == True %}                           
                        <td class="for-td3"><div class="cell-default-style">Admin</div></td>
                        {% else %}
                        <td class="for-td3"><div class="cell-default-style">Practitioner</div></td>
                        {% endif %}
                        <td class="for-td3"><div class="cell-default-style"><button class="btn" name="delete" type="submit"><img src="/static/assets/images/trash1.png" style="width: 18px;" alt="Delete"></button></div></td>
                      </tr>
                        {% endfor %}
                  
                    
                    </tbody>
                    
                  </table>
                </div>
              </dh-components-grid-body-render>
            </td>
          </tr>
        </tbody>
      
      </form>
    </div>
</body>

视图.py -

def engagement_admin_edit(request, id):
staff = request.user.is_staff
a = User.is_authenticated

if staff == True:
    eng_list = Grp.objects.all()
    eng = Grp.objects.get(id = id)
    eng_name = eng.gname
    eng_name = str(eng_name)
    eng_id = eng.id
    cursor = connection.cursor()
    cursor.execute('''SELECT * FROM main_enguser WHERE eid=%s''',[eng_id])
    row = cursor.fetchall()
    users = []
    for i in row:
        users.append(i[1])
    user_list = User.objects.filter(email__in=users)
    if request.method == 'POST':
        if 'update' in request.POST:
            name = (request.POST.get('engname'))
            if name != eng_name:
                engid = eng.id
                engid = int(engid)
                cursor = connection.cursor()
                cursor.execute('''UPDATE main_grp SET gname=%s WHERE id=%s''',[name,engid])
                messages.success(request, 'Engagement Name Updated Successfully')
                return redirect('/eng_admin')
            else:
                print("There")
                messages.success(request, 'No Changes Detected')
                return redirect('/eng_admin')
        if 'delete' in request.POST:
            email = request.POST.get('email', '')
            print("HI")
            print(email)
            messages.success(request, 'No Changes Detected')
    return render(request, "main/admin_eng_edit.html", {'eng_name':eng_name, 'user':users, 'user_list':user_list})

在views.py 的主要部分是:

if 'delete' in request.POST:
email = request.POST.get('email', '')
print("HI")
print(email)

即使单击了第一行的删除按钮,该脚本也只会打印最后一行的电子邮件 ID。 也试过 request.POST.get('email') 。 尝试更改标签位置。
但它没有帮助任何形式的帮助表示赞赏! 先感谢您

HTML 表单不能提供来自多个同名字段的数据。

但是,您可以使用“值”HTML 属性在提交按钮内传递一个值

尝试这样的事情:

<button class="btn" name="delete" type="submit" value="{{ i.email }}"><img src="/static/assets/images/trash1.png" style="width: 18px;" alt="Delete"></button>

然后在您的代码中:

email = request.POST.get('delete', '')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM