Я новичок в разработке программного обеспечения, пожалуйста, будьте терпеливы.Я пытаюсь получить запрос от моего 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