でSmallIntegerField結果のテキスト、forms.pyとオールドスクールDjangoのテンプレート内のModelForm(ファンシー何も)Djangoの私はmodels.pyでmodels.Modelを使用して単純なHTMLフォームを作成しているKeyError例外
でユーザが入力テキストの場合番号フィールドとフォームを送信すると、サーバーは、例KeyError
を返します。以下のフィールドに「高さ」:
class DataRegistryPart2(models.Model):
height = models.SmallIntegerField(blank=True, null=True)
は、テンプレートのHTMLの入力として表示されます。
forms.pyにカスタム検証を使用して<input id="id_height" name="height" type="number">
イム:
...
def clean(self):
cleaned_data = super(CreatePatient, self).clean()
height = cleaned_data["height"] # <-- This is where the KeyError happens!
ユーザーが入力フィールドにテキストまたは進番号を入力し、HTMLフォームを送信した場合、DjangoはKeyError例外を返します。
これを(try/catchを使用せずに)起こらないようにするにはどうすればよいですか?
Thanx!
あなたの答えをありがとう!クリーンな機能を使用するのは本当に悪い考えです。ユーザーが無効なデータをシステムにクラッシュさせるような形で入力する可能性が非常に高いです。 おそらく私は何かを誤解していますが、私は今、クリーン機能の使用法を見るのが難しいと感じています。おそらくあなたは精緻化することができますか? – Vingtoft
いいえ。私が言うように、それは1つ以上の分野にわたってバリデーションを行うためのものです。この場合、 'cleaned_data.get( 'fieldname')'を使用してKeyErrorをトリガーせずに潜在的に欠損値にアクセスすることができます。 –
それを明確にしていただきありがとうございます。 – Vingtoft