我必須基于兩個日期進行查詢,如果日期存在,如果不只是在沒有任何過濾的情況下運行查詢,但我不知道如何將日期輸入值從客戶端發送到服務器端,這是我的看法
def priceByDateTime(request):
start = request.GET.get('from')
end = request.GET.get('to')
print(start,end)#
if start and end:
datetimes = MyModel.objects.filter(invoice__created_at__range=(start,end)).annotate(
total_price=Sum(
(F('price')) - F('discount'),output_field=DecimalField(max_digits=20,decimal_places=3))
).annotate(
total_quantity=(
Count('pk')
)
).aggregate(
all_price=Sum(F('total_price')),
all_qnt=Sum(F('total_quantity'))
)
else:
datetimes = MyModel.objects.all().annotate(
total_price=Sum(
(F('price')) - F('discount'),output_field=DecimalField(max_digits=20,decimal_places=3))
).annotate(
total_quantity=(
Count('pk')
)
).aggregate(
all_price=Sum(F('total_price')),
all_qnt=Sum(F('total_quantity'))
)
return JsonResponse(datetimes,safe=False)
@login_required
def queryTemplate(request):
return render(request,'myapp/datetimes.html')
我知道如何進行查詢不確定如何將輸入日期型別值發送到后端
這是我的 GET 表格,從
$(document).ready(function(){
const start_date = new Date($('#from').val());
const end_date = new Date($('#to').val());
console.log(start_date)
console.log(end_date)
if(start_date && end_date){
data={
'from':start_date,
'to':end_date
}
}
function dateTimePrices(){
$.ajax({
type:'GET',
url:'/prices/dateTime/data',
data:data,
success:function(data){
const datetimes = data;
var k = '<tbody>';
if(datetimes){
k = '<tr>';
k = '<td>' datetimes["all_qnt"] '</td>';
k = '<td>' datetimes['all_price'] '</td>';
k = '</tr>'
}else{
k = '<td colspan=6>found nothing</td>'
}
k ='</tbody>'
document.getElementById('datetime_list').innerHTML = k
}
})
}
dateTimePrices();
})
<form action="" method="GET">
<div class="col-11 p-1 mt-1 mx-auto text-center row rtl ">
<p class="col-12 col-sm-6 mx-auto text-left row">
from
<input type="date" class="form-control col-9 mr-1" name="from" id="from">
</p>
<p class="col-12 col-sm-6 mx-auto text-right row">
to
<input type="date" name="to" class="form-control col-9 mr-1" id="to">
</p>
<button class="btn btn-info col-8 col-sm-5 col-md-3 mx-auto">search</button>
</div>
</form>
在控制臺顯示invalid date和后端顯示中:
django.core.exceptions.ValidationError: ['“無效日期”值的格式無效。它必須是 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] 格式。']
我非常感謝任何想法,在此先感謝您...
我還必須檢查輸入日期是否存在然后將data變數呼叫到ajax中,但現在即使我沒有任何搜索仍然假裝日期存在并從服務器端回傳此錯誤
uj5u.com熱心網友回復:
您需要為使用 jquery 的表單提交添加一個事件處理程式!
$( "#target" ).submit(function( event ) {
alert( "Handler for .submit() called." );
event.preventDefault();
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/380704.html
