Как получить запрос от HTML и обработать его на мой взгляд и на стороне модели - PullRequest
0 голосов
/ 04 октября 2018

Я новичок в разработке программного обеспечения, пожалуйста, будьте терпеливы.Я пытаюсь получить запрос от моего html-кода и получить значение кода сдвига, это может быть Shift1, Shift2 или Shift3.

Я использую oracle db только для чтения, поэтому я используюсырой запрос.По сути, я хочу отфильтровать результаты своей таблицы в html-коде через результат «Сдвиг» в соответствии с выбором пользователя, теперь я показываю результаты всех смен, как их отфильтровать?

Скажите, пожалуйста, какчтобы сделать это на мои views.py и models.py

HTML-код:

<div id="page-content-wrapper">

        <div class="container-fluid">
            <a href="#menu-toggle" class="btn btn-secondary" id="menu-toggle"><< Menu</a>
            <h4 align="right" >{{ date|date:'Y-m-d H:i' }} </h4>

            <h1>SMD/PBA System Management</h1>              

                <div class="container-fluid">


                Select the shift
               <form action="{ %url 'show_list' %}" method="post">
                  <div class="form-row align-items-center">
                    <div class="col-auto my-1">

                      <select class="custom-select mr-sm-2" id="inlineFormCustomSelect" name="shift">
                        <option selected>Shift 1</option>
                        <option value="1">Shift 1</option>
                        <option value="2">Shift 2</option>
                        <option value="3">Shift 3</option>
                        <option value="ALL">ALL</option>
                      </select>
                     </div>
                    <button type="submit" value="Submit" class="btn btn-info">Search</button>
                   </div>
                </form>

                <br>


                <h4>Retest IM</h4>
                    <table align="left" border="2" class="table table-dark">
                     <tr bgcolor="#0080ff">
                        <td align="center">Date</td>
                        <td align="center">Shift</td>
                        <td align="center">Line</td>
                        <td align="center">Model</td>
                        <td align="center">Insp QTY</td>
                        <td align="center">Retest QTY</td>
                        <td align="center">Index PPM</td>

                        {% for instance in query %}
                                {% if instance.DEF_INDEX_PPM > 5000 %}
                                <tr bgcolor="#ff4d4d">
                                {% else %}
                                <tr>
                                {% endif %}
                                    <td align="center">{{ instance.WORK_YMD }} </td>
                                    <td align="center">{{ instance.SHIFT_CODE }} </td>
                                    <td align="center">{{ instance.LINE_NM }} </td>
                                    <td align="center">{{ instance.MODEL_NM }} </td>
                                    <td align="center">{{ instance.SMD_INSP_QTY }} </td>
                                    <td align="center">{{ instance.SMD_RETEST_DEFT_QTY }} </td>
                                    <td align="center">{{ instance.DEF_INDEX_PPM|floatformat:0 }} </td>
                                </tr>

                        {% endfor %}


                     </tr>
                </table>
                <h4>Retest CE</h4>
                <table align="left" border="2" class="table table-dark">
                     <tr bgcolor="#0080ff">
                        <td align="center">Date</td>
                        <td align="center">Shift</td>
                        <td align="center">Line</td>
                        <td align="center">Model</td>
                        <td align="center">Insp QTY</td>
                        <td align="center">Retest QTY</td>
                        <td align="center">Index PPM</td>>


                        {% for instance in query2 %}
                               {% if instance.DEF_INDEX_PPM > 5000 %}
                                <tr bgcolor="#ff4d4d">
                                {% else %}
                                <tr>
                                {% endif %}
                                     <td align="center">{{ instance.WORK_YMD }} </td>
                                     <td align="center">{{ instance.SHIFT_CODE }} </td>
                                     <td align="center">{{ instance.LINE_NM }} </td>
                                     <td align="center">{{ instance.MODEL_NM }} </td>
                                     <td align="center">{{ instance.PBA_INSP_QTY }} </td>
                                     <td align="center">{{ instance.PBA_RETEST_DEFT_QTY }} </td>
                                     <td align="center">{{ instance.DEF_INDEX_PPM|floatformat:0 }} </td>

                                </tr>

                        {% endfor %}
                     </tr>
                </table>

                </div>



        </div>

    </div>
    <!-- /#page-content-wrapper -->

Views.py код:

from datetime import datetime

from django.http import HttpResponse
from django.shortcuts import render
from django.template import loader

from .models import my_custom_sql2


# Create your views here.
def show_list(request):

    query2 = my_custom_sql2(self='my_custom_sql2')

    myDate = datetime.now()

    return render(request, 'monitoring.html', {'query2': query2, 'date': myDate})

models.py Код:

from django.db import models
from django.db import connection


# Create your models here.
def dictfetchall(cursor):
"Returns all rows from a cursor as a dict"
desc = cursor.description
return [
        dict(zip([col[0] for col in desc], row))
        for row in cursor.fetchall()
]




def my_custom_sql2(self):
with connection.cursor()as cursor:
import time
date = time.strftime('%Y%m%d')

            cursor.execute("""
                   select  A.WORK_YMD,
                           A.SHIFT_CODE,
                           --A.LINE_CODE,
                           B.LINE_NM,
                           A.MODEL_NM,
                           A.PBA_INSP_QTY,                          
                           A.PBA_RETEST_DEFT_QTY,                           
                          (A.PBA_RETEST_DEFT_QTY / A.PBA_INSP_QTY * 1000000) 
AS DEF_INDEX_PPM

                    from TBS_QM_TOTAL_PROC_DEFT A, TBM_MD_LINE B  

                    where  
                           A.WORK_YMD = %s  
                           AND A.LINE_CODE = B.LINE_CODE                                  
                           AND A.PBA_INSP_QTY > 0 
                           --AND A.SHIFT_CODE                            
                          ORDER BY DEF_INDEX_PPM DESC, B.LINE_NM ASC
                    """, [date])
    row = dictfetchall(cursor)

    cursor.close()
    return row

urls.py

from django.urls import path
from .views import show_list


urlpatterns = [
path('list/', show_list, name="show_list"),
]

[HTML-экран: 1

1 Ответ

0 голосов
/ 04 октября 2018

Как я понял, вы хотите вернуть проверенное пользователем значение из формы;Для этого вам нужно работать с Django Forms.Для более подробной информации читайте документы:

https://docs.djangoproject.com/en/2.1/topics/forms/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...