私は、従業員が都市、旅行区間の状態に入り、マイレージの払い戻しを自動的に計算できるフォームを作成しています。現在、forms.py に次のコードがあります。
leg1a = forms.CharField(max_length=20, required=False)
leg1b = forms.CharField(max_length=20, required=False)
leg2a = forms.CharField(max_length=20, required=False)
leg2b = forms.CharField(max_length=20, required=False)
leg3a = forms.CharField(max_length=20, required=False)
leg3b = forms.CharField(max_length=20, required=False)
leg4a = forms.CharField(max_length=20, required=False)
leg4b = forms.CharField(max_length=20, required=False)
leg5a = forms.CharField(max_length=20, required=False)
leg5b = forms.CharField(max_length=20, required=False)
leg6a = forms.CharField(max_length=20, required=False)
leg6b = forms.CharField(max_length=20, required=False)
次に、別のスクリプトを使用して各区間のマイルを集計し、合計にマイレージ レートを掛けます。機能しますが、フォームが醜いです。フォームには 6 組のフィールドがあり、すべてオプションです。開始するペアが 1 つあり、ユーザーがクリックして別のレッグを追加できるオプションが必要です。
('city, ST','city2, ST')
距離計算関数のように、データをタプル形式で保持する必要があります。
データをクリーニングしてマイレージ ハンドラに送信するために、フォーム ビューで現在使用しているコードは次のとおりです。
走行距離計算
leg_list = [(leg1a, leg1b), (leg2a, leg2b), (leg3a, leg3b), (leg4a, leg4b), (leg5a, leg5b), (leg6a, leg6b)]
cleaned_leg_list = []
#get rid of empty variables
for leg in leg_list:
if leg == ('',''):
pass
else:
cleaned_leg_list.append(leg)
leg_distance = []
#sends each leg of mileage claim to distance handler
for leg in cleaned_leg_list:
pre_leg = main(leg)
leg_distance.append(pre_leg)
#sums legs of mileage claim
sum_distance = sum(leg_distance)