반응형
금일은 Django Queryset 데이터들을 처리한뒤 데이터 시각화를 진행했다. 애초에 Model에서 Filed를 Char로 잡지말고 Datetime으로 잡아버리면 훨씬 수월했을텐데.. DB를 내가 짠게 아니니깐 그냥 view단에서 데이터를 다시 변환시켜줬다!
Toast grid 관련 글은 조금 썻는데 다시 쓰는것도 좋을거같아 한번 끄적인다! 왜냐면 table 모듈중에서는 제일 편하고 좋은거같아서!

개발 [script]
$(document).ready(function () {
const Grid = tui.Grid;
Grid.applyTheme('default', {
cell: {
normal: {
background: '#fff',
border: '#222222',
showVerticalBorder: true,
showHorizontalBorder: true,
},
header: {
background: '#f0f6f9',
},
selectedHeader: {
background: '#e0e0e0'
}
}
})
Grid.setLanguage('ko')
data = dataSource('{% url 'B2C:gridtableapi' %}', 'GET', {action: 'erplinkgrid'})
const grid = erp_link_log(data)
function erp_link_log(datasource) {
return new tui.Grid({
el: document.getElementById('grid'),
scrollX: true,
scrollY: true,
data: datasource,
columns: [
{
header: '거래처',
name: 'mall_id',
align: 'center',
sortable: true,
filter: 'select',
className: 'bg-light'
},
{
header: '수주일',
name: 'order_date',
align: 'center',
sortable: true,
filter: 'select',
className: 'bg-light'
},
{
header: '작업일',
name: 'work_date',
align: 'center',
sortable: true,
filter: 'select',
className: 'bg-light'
},
{
header: '출하일',
name: 'dlv_date',
align: 'center',
sortable: true,
filter: 'select',
className: 'bg-light'
},
{
header: '품목코드',
name: 'ITEM_CD',
align: 'center',
sortable: true,
filter: 'select',
className: 'bg-light'
},
{
header: '품목명',
name: 'ITEM_NM',
align: 'center',
sortable: true,
filter: 'select',
className: 'bg-light'
},
{
header: '단위코드',
name: 'STD_UNIT_CD',
align: 'center',
sortable: true,
filter: 'select',
className: 'bg-light'
},
{
header: '수량',
name: 'ITEM_QT',
align: 'center',
sortable: true,
filter: 'select',
className: 'bg-light'
},
{
header: '결제액',
name: 'SELL_AMT',
align: 'center',
sortable: true,
filter: 'select',
className: 'bg-light'
},
],
columnOptions: {
resizable: true,
},
pageOptions: {
useClient: true,
perPage: 20
},
});
}
$('#date1').change(function () {
let searchdate = $(this).val()
let newdate = searchdate.replace(/\-/g, '');
const obj = {}
obj['newdate'] = newdate
obj['action'] = 'link_date'
grid.readData(1, obj, false)
})
});
개발 [View]
if req.get('action') == 'erplinkgrid':
# today_date = datetime.today().date()
today_date = "20220829"
str_date = str(today_date)
chara = "-"
for x in range(len(chara)):
str_date = str_date.replace(chara[x], "")
data = Erplink_log.objects.filter(dlv_date=str_date)
serializer = ErplinkSerializer(data, many=True)
result = {
"result": 'true',
"data": {
"contents": serializer.data,
}
}
if req.get('action') == 'link_date':
link_list = Erplink_log.objects.all().order_by('-dlv_date')
kwdate = req.get('newdate')
link_list = link_list.filter(
Q(dlv_date=kwdate)
)
result = {
"result": 'true',
"data": {
"contents": list(link_list.values())
}
}
반응형
'Django' 카테고리의 다른 글
2022-11-29 개발일기 [Django, Q] (0) | 2022.11.29 |
---|---|
2022-09-13 개발일기 [Django, Toast Grid] (0) | 2022.09.13 |
2022-08-09 개발일기 [Django, DjangoTemplate] (0) | 2022.08.09 |
2022-07-27 개발일기 [Django, Toast UI] (0) | 2022.07.27 |
2022-07-25 개발일기 [Django] (0) | 2022.07.25 |