Ich habe ein Formular, das ich in Django verarbeitet. Es verarbeitet die Form richtig, aber nach der Verarbeitung durchgeführt wird, wird ein HTTP-Antwort-Fehler zu werfen, die nicht möglicherweise passieren könnten ...Erhalten einer HTTP-Antwort, die in Django unmöglich ist
hier ist die Form:
# create a new expense form - group
class CreateExpenseForm(forms.ModelForm):
split_choices = (('1', 'even'),
('2', 'individual'))
split = forms.TypedChoiceField(
choices=split_choices
)
class Meta:
model = Expense
fields = ['location', 'description', 'amount', 'split']
hier ist die Ansicht: ich werde brechen, wo der Fehler passiert:
if request.method == 'POST':
form = CreateExpenseForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
location = cd['location']
description = cd['description']
amount = cd['amount']
split = cd['split']
reference = generate_number()
for member in members:
if member.user.username in request.POST:
new_expense = Expense.objects.create(
user = member.user,
group = group,
location = location,
description = description,
amount = amount,
reference = reference,
created_by = user,
)
print('all exepense accounted for')
‚alle Aufwendungen entfielen‘ im Terminal Druck dann wirft er den Fehler
jetzt mit dem Formular, gibt es nur zwei Möglichkeiten, die Split sein kann, die 1 und 2 sind
Ich wähle Option 1 (gerade) so sollte der Split eins sein, aber keine der Druckmeldung angezeigt werden .. .
Es wird kein Fehler gedruckt, daher muss der HTTP-Antwortfehler im obigen Abschnitt auftreten.
else:
print(form.errors)
return redirect('test')
else:
form = CreateExpenseForm()
parameters = {
'form':form,
'members':members,
}
return render(request, 'groups/create_expense.html', parameters)