問題タブ [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フォームの検証
phone_type
( for ) を選択して空のフォームを送信すると、フォームは規定formHomePhone
で選択された値なしでそれ自身を返しますphone_type
This field is required
ビューからわかるように、フォームの最初の電話番号は必須ですが、他の電話番号は必須ではありません。値が存在する場合にのみ処理したい。空のフォームで [送信] をクリックすると、追加の電話番号フィールドからエラーがスローされますが、
UKPhoneNumberField
>Phone number must include an area code.
該当するフィールドに番号がある場合にのみ検証するにはどうすればよいですか?
このようなview.pyファイルがあります
次のようなforms.py:
そして、このようなmodels.py:
ところで(私のnew_client_view
機能はあまりDRYではありません。お勧めはありがたく受け取られます)
django - Django - モデルが保存される前に ``clean`` から m2m オブジェクト (または raw pk) にアクセスします
もちろん、 をそのまま使用することはできません。そうしないとself.related_field.objects.all()
、...needs to have a primary key...
エラーが発生しますが、 内でカスタム検証を実行したい場合、Model.clean
このデータにアクセスする方法がないようです。もちろんForm.clean
、これを行うために使用できますが、私は常にフォームを使用しているわけではありません。
python - djangoの検証エラーでcssクラスをフィールドに追加する
私は Django のモデルフォームを使用していますが、これは非常に優れています。関連する検証エラーがある場合、実際のテキスト ボックス (例: border:red ) を強調表示するにはどうすればよいですか。基本的に、フィールドに検証エラーが発生した場合にクラス(エラー)を追加したいのです。
python - Djangorequest.userは空です
djangoを使用して、Googleを通じてユーザーを認証しています。私は最初のリクエストトークンを取得し、認証のためにユーザーをグーグルにリダイレクトします。その後、グーグルはユーザーを私のウェブサイトにリダイレクトします(私が提供するredirect_urlを使用して)。
この時点request.user.id
でNone
そうですrequest.user.username
、なぜこれが起こっているのですか?(グーグルが送ってくれた)access_tokensをDBに入力するにはユーザーIDが必要です。
どのような条件下request.user
でDjangoのオブジェクトを空にすることができますか?
更新1:http://mywebsite.com/lserv?s=goog
コントロールがdjangoビュー機能に戻ったときにurlパターンを使用してGoogleからリダイレクトされたが、djangoはrequest.user
オブジェクトユーザーをユーザー名またはIDのない匿名ユーザーとして提供します。なぜ?
UPDATE2:
これはすべて今のところ実行されpython manage.py runserver
ています...
UPDATE3:誰かがこれに似た何かに直面しましたか?基本的に、理由もなく、user
inはrequest
自動的にクリアされ、Anonymous
ユーザーとして割り当てられます。これはすべて、ユーザーからの(ブラウザーからの)URL要求の間に発生します。なんで?
django - フォームの検証に関するDjangoの問題
私はこのすべての検証がどのように機能するかを理解しようとしていますが、コツをつかんでいません。djangoprojectのほんの少しの例を読みましたが、概念とすべてがどのように結び付けられているかが欠けています。
私のコードを見て、物事がどうあるべきか、そしていくつかの説明を再配置していただければ、それは素晴らしいことです!
だから私は非常に簡単なことをしたいのです。メールのみでログインしてください。ユーザーがメールアドレスを入力したら、データベースにあるかどうかを確認し、ある場合はログインします。そうでない場合は、「ユーザーはすでにデータベースにあります」というエラーを発生させ、この人が/registerにアクセスすることを提案します。
だから私が現在持っているのは:
view.py:
forms.py:
つまり、要点は、概念が欠落しているということです。検証エラーはどこで発生する必要がありますか、ビューまたはフォームですか?どこに上げられますか?誰がそれをキャッチしますか?各ファイルに何をインポートする必要があるかなど。
これはそれほど難しいことではないはずですが、私は今完全に迷子になっています。コードを分析して機能するように変更できる例がないので、ここにいます。
python - djangoフォームが検証に失敗した後に何を返すのですか?
djangoフォームが検証に失敗した後、どうすれば自分のページに戻ることができますか?
これは私が現時点で持っているものです。フォーム オブジェクトと、戻す必要がある他のすべてのオブジェクトで失敗した後、render_to_response を返します。しかし、ブラウザーの URL にはフォーム アクションの値が含まれているため、これはまるで私が何か悪いことをしているように。どうにかして HttpResponseRedirect と共にオブジェクトを返すことができればいいのですが、ドキュメントを見ることはできません。
django - カスタム検証が呼び出されないのはなぜですか?
私はこのモデルとモデルフォームを持っています:
そして、私はビューで次のようにそれらを使用しています:
そしてこれは私のテンプレートです:
問題は、私の検証が呼び出されることはないということです。一度に追加できるコメントが3つあります。テキストフィールドが空の場合、djangoは問題ないと言っています。私は何を正しくしていないのですか?
編集:バリデーター付きのバリアント:
バリデーターが呼び出されていません。
python - Django -- フォームの検証 (整数フォーム フィールドを手動で消去できないのはなぜですか)
これはかなり簡単なはずですが、Django のドキュメントからはわかりません。ModelForm フィールドを作成した IntegerField モデル フィールドがあります。問題のフィールドには $ 値 (価格) が含まれており、ユーザーが 10 ではなく $10 を入力したときにエラー メッセージ (「整数を入力してください」) が表示されなければ、UX の観点から望ましいでしょう。
手動でフォームのクリーニングを試みましたが、他の検証メソッドの後に clean_field メソッドが実行されているようです。これまでの私の読書もそれを確認しているようです。
モデルフォームでIntegerFieldを維持しながら、これを回避する方法はありますか? RegexFieldにするだけですか?
EDIT:上記とRegexFieldの組み合わせで行きました。別の/より良い方法があるかどうか、まだ興味があります。
python - Django-フィールドが欠落している場合でも、実行中のmodel.cleanを管理/追加
さて、私はこのようなモデルを持っています:
ここで、Djangoadminを使用して新しい飛行機のレコードを追加しようとすると。両方のフィールドを空白のままにして保存すると、行を指すこのDjangoエラーが発生しますif self.tail and self.wheel
。
Djangoは、クリーンに実行する前に、必須フィールドが入力されていることを確認するべきではありませんか?いずれにせよ、この問題を処理するための最良の方法は何ですか?
python - モデルとフォームでの検証のヘルプ
モデルとフォームの検証についていくつか質問があります。これらについて私を助けてもらえますか:
検証はどこで行う必要がありますか? モデルまたはフォームにある必要がありますか? これを行う正しい方法は、フォームにバリデーターを、モードに制約を設定することですか?
フォームに「clean_」メソッドを書くこととバリデータを書くことの違いは何ですか? 「clean_」メソッドに検証チェックを入れる人が多いのを見てきました。
私が処理しているリクエストでは、URL 文字列に「alive」というパラメーターがあります。これは通常 1 または 0 です。フォームでこれを定義する正しい方法は何ですか? それが数値であり、1 または 0 のみであることを検証する必要があります。これは正しい方法ですか?
このフィールドのデフォルト値を定義するにはどうすればよいですか。つまり、このパラメーターが渡されない場合、デフォルトは 0 (False) になります。
クライアント側にフォームがありません。JS POST リクエストを検証するために Django フォームを使用しています。
モデル フィールドの 1 つで、画面解像度を 1234x4321 の形式で保存する必要があります。モデルとフォームの両方CharField
に正規表現の検証を追加するとしてこれを宣言する必要がありますか? 正規表現の検証の例は役に立ちます。
ありがとう。