問題タブ [django-validation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - Django-フォームの検証で値を覚えてエラーを表示する方法は?
フォームの検証で値を記憶し、エラーを表示する方法がわかりません。
これが私のコードです:
template.html:
views.py:
このテンプレートの何が問題になっているのか、エラーが発生せず、フォームの値を覚えていないという見方についての手がかりはありますか?
よろしくお願いします、
django - full_clean() と一緒にアトミック更新に Django F() 式を使用することは可能ですか?
DjangoF()
式で割り当てられたフィールドが検証に失敗することを発見しました。Django doc の例を変更しました:
そして、私は得ています: ValidationError: {'number_sold': [u"'(+: (DEFAULT: ), 0)' value must be an integer."]}
. 実際、販売数は整数ではなく、 のインスタンスですdjango.db.models.expressions.ExpressionNode
。
これを回避する方法はありますか?私のモデルはすべて、full_clean()
保存のたびに自動的に呼び出される基本クラスを拡張します。私はこの基本クラスを維持したまま、アトミックな更新を使用できるようにしたいと考えています。
python - Django:オブジェクトは存在するが、オブジェクトの現在のインスタンスではないかどうかを確認します
プロジェクトの基本的なCMSシステムをまとめ、ナビゲーションバーで作成したページを注文できるように注文システムを追加します。残念ながら、私が書いたカスタムバリデーターは少し攻撃的で、ページを編集するとエラーが発生します。これは、正しい順序がデータベースにすでに存在しているためです。
フォームのモデルは次のとおりです。
カスタムバリデーター:
更新を実行するときに、新しい注文がすでに存在するが、現在のPageオブジェクトではない場合にのみ、カスタムバリデーターでエラーを発生させる方法はありますか?何かのようなもの:
ありがとう!
django - clean_に電話したくない場合()メソッド、私はそれを行うことができますか?
Django:clean_()メソッドを呼び出したくない場合、それを行うことはできますか?
「email」フィールドのみを検証するために、フォーム検証を使用したい場合があります。
以下のように:
方法はありますか?
django - djangoモデル:オブジェクトを保存する前に関係を確認してください
私はdjangoモデルが2つのクラスannualReport
で構成されていますannualReportAttachment
2つのモデル間の関係はですoneToMany
。管理フォームで、ユーザーが少なくとも1つのファイルをアップロードしたことを検証する必要があるため、annualReport
クラスで次のクリーンなメソッドを使用します
問題は、添付ファイルがまだ保存されていないため、attachments
変数が空であり、フォームが常にそのエラーを発生させることです。
ユーザーが少なくとも1つのファイルをアップロードしたことを確認するにはどうすればよいですか?
django-forms - フォームフィールドでのDjangoの英数字の検証
フィールドバリデーションを行いたいのですが、条件が
1) フィールドには 10 文字が必要です。
2) これらの最初の 5 文字はアルファベットで、次の 5 文字は数字でなければなりません
最大長チェックのバリデーションを行いましたが、あとはどのように実行するかです。
私はそれを実行するためにグーグルでロジックを探していますが、何の考えもありません.誰かが同じことを実行するのを手伝ってくれますか.
長さチェック用の forms.py
このコードを使用して実行していますが、機能していません。
ありがとう
django - Django - 重複レコードの防止
データベースにクライアント レコードのリストがあります。毎年、クライアントごとに 1 つの作業指示書を作成します。次に、作業指示書レコードごとに、ユーザーは作業指示書に固有のメモを作成できる必要があります。ただし、すべての作業指示書にメモが必要なわけではありません。
note
作業指示書が生成される前にメモを作成する必要がある場合があるため、単純に作業指示書にフィールドを追加することはできません。このメモは、2 ~ 3 年間発生しない作業指示書に固有のものである場合があります。したがって、メモと作業指示書は独立している必要がありますが、両方が存在する場合は互いに「検出」されます。
よし、これが状況だ。ユーザーが と の 2 つのフィールドを持つ非常に単純なフォームに入力できるようにしたいと考えていnote
ます。したがって、彼らは年を選んでメモを書くだけです。キッカーは、ユーザーが同じクライアントに対して同じ年に 2 つのメモを作成できないようにすることです。noteYear
note
私が取得しようとしているのは、そのクライアントのその年のメモがまだないことを確認して、メモを検証することです。is_valid
これは、フォーム内のカスタム メソッドによって達成されると想定していますが、それを行う方法がわかりません。
これは私がこれまでに試したことです(間違っていることはわかっていますが、うまくいきませんが、これまでのところ私の試みです):
systemID
私の顧客記録であることに注意してください
私のモデル:
そして私のフォーム:
編集-これが私の解決策です(正しい方向に私を送ってくれたjanosに感謝します)
私の最終的なフォームは次のようになります。
このコードを見ている他の人にとって、唯一の紛らわしい部分は次の行です: sysID = sysID.systemID
. はsystemID
、実際には別のモデルsystemID
のフィールドです。このモデルのフィールドでもありますが、おそらく設計が不十分ですが、機能します。
django - メイン フォームが検証されない場合の inline_formsets の検証
潜在的なクライアントに関する詳細のコレクションを含む見積もりがあります。名前、住所など。簡単なもの。次にinlineformset
、主な見積もりに関連付けられている製品、労働力などのいくつかの s があります。
私が抱えている問題は、ちょっとしたキャッチ 22 です。私の考えでは、この方法で検証を行うことでした。
- 走る
mainForm.is_valid()
- メイン フォームが検証されたら、それを保存して「サブ」フォームに移動します (
inlineformset
s) - 走る
my_inlineformset.is_valid()
- が検証された場合は
my_inlineformset
、それも保存し、mainForm
のmainForm
ID で に「添付」します。
問題は次のとおりです。メイン フォームが検証されない場合、フォームは保存されません。保存されない場合、「添付」するものは何もありませんinlineformset
。したがって、mainForm
が検証されず、エラーを修正するためにフォームに戻されると、inlineformset
は空白になります。そのため、ユーザーが にたくさんの情報を入力したinlineformset
のに失敗したmainForm
場合、エラーを修正するためにフォームに戻されたときに、 上のすべてのデータinlineformset
が失われます。
最初に保存しinlineformset
、メインフォームが検証された後にのみメインフォームに添付することで、この問題を回避しようとしました。これに関する問題は、大量の s を無料で節約できることinlineformset
です。それらは見積もりに添付されることはありません。何にも関連付けられておらず、本質的に、データベース内を不必要に浮遊するだけのレコードの全体的なおかしなことはしたくありません。
これが私のビューコードです:
したがって、 main が検証されない場合、私FormSet
の s が検証のためにチェックされることはありません (そして、pform
開始される前に呼び出されたエラーがスローされます)。ただし、メインの前に検証する場合、それ自体が検証されない (したがって保存されない)場合pform
、どのように「アタッチ」pform
しますか?main
main
では、同じページの別のフォームが検証されない場合、インライン フォームセット データをどのように保持するのでしょうか?
編集
このページ (4 つのフォーム (メイン フォームと 3 つのインライン フォーム) があります) を 4 つのステップに分割することについて疑問に思っています。ユーザーは各フォームに個別に入力する必要があります。そうすれば、上記の問題を心配することなく安全に検証できます。もちろん、これはユーザーに必要以上の作業をさせているようです。
python - Django フォームのカスタム日付検証
開始日と終了日の 2 つの日付属性を持つ django クラスがあります。開始日が終了日より前 (または同じ日付) である必要があるというカスタム検証要件を作成したいと考えています。これがカスタム検証を展開することは知っていますが、これがどこに行くべきか本当にわかりません (モデル内? ビュー内? など)。
何かアドバイス?ありがとう。