ارسال یک رشته به عنوان پارامتر کوئری ؟؟؟؟؟؟؟؟؟؟
سلام
من کد زیر رو نوشتم :
str_1 = ''
if From_Date_Response != '' and Until_Date_Response != '':
str_1 = "answering_date__range = (From_Date_Response , Until_Date_Response )"
if From_Date_Reception != '' and Until_Date_Reception != '' :
if str_1 != '' :
str_1 = str_1 + ", date_acceptance__range = (From_Date_Reception , Until_Date_Reception)"
else :
str_1 = " date_acceptance__range = (From_Date_Reception , Until_Date_Reception)"
if From_Number_Reception != '' and Until_Number_Reception != '' :
if str_1 != '' :
str_1 = str_1 + ",id_reception__range = (int(From_Number_Reception) , int (Until_Number_Reception))"
else :
str_1 = "id_reception__range = (int(From_Number_Reception) , int (Until_Number_Reception))"
حالا با این رشته که ساختم کوئری زیر رو نوشتم :
result_test = Reception.objects.filter(str_1)
خطا میده
too many values to unpack
من تعداد شرطایی که دارم زیاده و باید اینکار رو انجام بدم تو دات نت مشکلی نداره اینجا چطوریه ؟؟؟؟؟؟؟؟؟؟
با تشکر
نقل قول: ارسال یک رشته به عنوان پارامتر کوئری ؟؟؟؟؟؟؟؟؟؟
باید به کوئری به چشم یک شی نگاه کنی یک چیزی مثل این باید کارت رو راه بندازه:
result_test = Reception.objects.all()
if From_Date_Response != '' and Until_Date_Response != '':
result_test = result_test.filter(answering_date__range = (From_Date_Response , Until_Date_Response ))
if From_Date_Reception != '' and Until_Date_Reception != '' :
if str_1 != '' :
result_test = result_test.filter(date_acceptance__range = (From_Date_Reception , Until_Date_Reception))
else :
result_test = result_test.filter(date_acceptance__range = (From_Date_Reception , Until_Date_Reception))
if From_Number_Reception != '' and Until_Number_Reception != '' :
if str_1 != '' :
result_test = result_test.filter(id_reception__range = (int(From_Number_Reception) , int (Until_Number_Reception)))
else :
result_test = result_test.filter(id_reception__range = (int(From_Number_Reception) , int (Until_Number_Reception)))
نقل قول: ارسال یک رشته به عنوان پارامتر کوئری ؟؟؟؟؟؟؟؟؟؟
البته راه دوم و بهترش اینه :)
kwargs= {}
result_test = Reception.objects.all()
if From_Date_Response != '' and Until_Date_Response != '':
kwargs['answering_date__range'] = (From_Date_Response , Until_Date_Response )
if From_Date_Reception != '' and Until_Date_Reception != '' :
if str_1 != '' :
kwargs['date_acceptance__range'] = (From_Date_Reception , Until_Date_Reception)
else :
kwargs['date_acceptance__range'] = (From_Date_Reception , Until_Date_Reception)
if From_Number_Reception != '' and Until_Number_Reception != '' :
if str_1 != '' :
kwargs['id_reception__range'] = (int(From_Number_Reception) , int (Until_Number_Reception))
else :
kwargs['id_reception__range'] = (int(From_Number_Reception) , int (Until_Number_Reception))
result_test = Reception.objects.filter(**kwargs)
نقل قول: ارسال یک رشته به عنوان پارامتر کوئری ؟؟؟؟؟؟؟؟؟؟
ممنون از n.nowroozi
چقد گشتم اینو پیدا کنم تشکر.
لوله بازکنی