問題タブ [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でUploadedFileの一時的な名前を取得するにはどうすればよいですか?
私はいくつかのファイル検証を行っており、UploadedFile を実行できる場所に保存する前に、「/tmp」ディレクトリにある間に UploadedFile を外部ライブラリにロードしたいと考えています。Django は次のことを行います。
Django は、アップロードされたファイルをシステムの一時ディレクトリに保存されている一時ファイルに書き込みます。Unix ライクなプラットフォームでは、これは Django が /tmp/ tmpzfp6I6.uploadのような名前のファイルを生成することを期待できることを意味します。
手に入れたいのは「tmpzfp616.upload」です。 UploadedFile.name は「」を与え、file.name はファイルの適切な名前「example.mp3」を与えます。
私が使用しているライブラリでは、ファイル自体ではなく一時ファイルのファイルパスをライブラリに渡す必要があるため、文字列が必要です。
何か案は?
前もって感謝します。
編集:これが私のコードです:
「UploadedFile」を使用すると、「タイプ オブジェクト 'UploadedFile' には属性 'temporary_file_path' がありません」という AttributeError が表示されます。代わりに file.temporary_file_path を使用すると (ここで暗闇の中でダーツを投げるだけです)、IOError が発生します。
[Errno 2] そのようなファイルまたはディレクトリはありません: 'bound method TemporaryUploadedFile.temporary_file_path of >'
私はtemporary_file_pathが私が探している解決策であることを認識しています.
django - django - フォームのフィールド検証を無効にする
ModelForm でフィールド検証を無効にする必要があります。この検証で一部のフィールドを検証しないようにします。追加のフィールドを含むより複雑なフォームを返したい場合、いくつかの状況 (AJAX レンダリング フォーム) があります。POST をフォームに渡し、投稿フィールドが保存された新しいフォームをレンダリングします。いくつかの新しいフィールドが追加され、検証できません。フラグをフォームに渡し、いつ発生するかを認識します。私はいくつかのきれいな関数でそれを作るべきですか?
python - django モデルでのループ検出
それ自体と多対多の関係を持つモデルがあります。
グループがそれ自体のサブグループまたはそのサブグループのサブグループなどになるのを防ぐモデルの検証を作成したいと考えています。目的は、ループ/無限再帰が発生する可能性がある状況を防ぐことです。
以下に示すように、モデルの clean() メソッドでこれを実装しようとしました。
また、トランザクションを使用してモデルの save() メソッドでこれを実装しようとしました。
どちらの状況でも、無効な変更が (誤って) データベースに保存される状況に陥りましたが、いずれかのインスタンスにさらに変更を加えようとすると、検証によってエラーが検出されますが、その時点で、不適切なデータがはすでにデータベースにあります。
これが可能かどうか疑問に思っています。可能であれば、モデル検証で可能であれば、チームの全員が将来作成するすべてのフォームからこれらの検証を呼び出すことを忘れないようにする必要はありません。
さらに遅滞なく、コード:
ご協力をお願いいたします。
[編集] 参考までに、私がトランザクションを管理するために使用しているメカニズムに基づいて判断できない場合、私は現在 django 1.2 を使用しています。これは、RHEL6 の fedora EPEL リポジトリで利用できるためです。解決策が利用可能であるが、1.3 へのアップグレードが必要な場合、アップグレードに問題はありません。また、RedHat の RHEL6 で利用できる python 2.6.6 も使用しています。Python のアップグレードは避けたいのですが、関連性があるかどうかは非常に疑わしいです。
python - Djangoform.is_validはKeyErrorをスローし続けます
私の見解では、次のコードがあります。
フォームは、ModelForm
であり、基になるモデルには。が含まれていIntegerField
ます。
空の値でフォームを投稿すると、検証メッセージが正常に表示されます。
整数以外の値でフォームを投稿すると、次のようになります。
/でのKeyError
'無効'
コードが呼び出し時にクラッシュするように見えるのはちょっと驚きですis_valid()
。これは安全だと思いました(つまりFalse
、クラッシュするだけでなく、問題が発生した場合に戻る必要があります)。これを修正するにはどうすればよいですか?
スタックトレース
django - ValidationError が発生した場合、Django 管理者のインライン フォームセットで削除リンクが消える
のフォームがありKeywordInline
ます。フォームインラインフォームセットを使用して新しいオブジェクトを追加すると、新しいフォームをフォームセットに追加するためのjsリンクがあります。新しく追加されたフォームには、js 対応の削除ボタン (右側の x マーク) があります。
キーワードインライン
KeywordFromset
保存ボタンを押して ValidationError が発生すると、これらの削除ボタンが fromset から消えます。したがって、誤って間違ったキーワードを追加した場合、それを削除することはできません。
これは正常な動作ですか?また、削除リンクを永続化するにはどうすればよいですか?
どんな助けでも大歓迎です。
django - Djangoでフォームが検証されない
Django フォームに奇妙な問題があります。どの送信ボタンがクリックされたかに応じて、さまざまなアクションを実行できるこのフォームがあります。開発のある時点で、すべてが正常に機能しました。私のフォームは正常に検証され、まさに私が望んでいたことも実行していました。しかし今では (そして、それを壊すために何が間違っていたのか本当にわかりません)、送信アクションは機能しません。エラーは発生しません。何もしません。
これが私の forms.py ファイルのコードです:
さらに、誰かが尋ねた場合に追加できるいくつかの save_action() メソッド。私のviews.pyのコード:
そして、私のテンプレートは次のようなものです:
私は完全に立ち往生しているので、助けていただければ幸いです
django - カスタム フォームの検証
私はかなり単純なフォームを持っています:
これは、カスタム フォームの検証が行われる方法ですか? email
その電子メール アドレスを持つユーザーが現在存在しないことを評価する必要があります。私もそれを評価しpassword
てpassword_repeat
一致させる必要があります。どうすればこれを行うことができますか?
django - ModelForm 検証を配置する適切な場所はどこですか?
私は Django を使用ModelForms
しており、モデルとフォームの両方を検証したいと考えています。私は以下を使用してフォームをレンダリングしています:
フィールドごと (forms'clean_fieldname
など) および全体 (forms' など) で検証を配置する適切な場所はclean
どこですか?
記述されるコードの量を最小限に抑え、同じバリデータを (モデルとフォームの両方で) 2 回記述しないようにしたいと考えています。また、フィールドごとの検証エラーを適切なフォーム フィールドに表示し、すべてのエラーをフォームの上に配置しないようにしたいと考えています (したがって、モデルのすべてのチェックがクリーンであるとは限りません)。
django - Django - フォームのデフォルトのエラー メッセージを変更する
検証の概要を含む単純な ajax フォームを作成しようとしているので、「このフィールドは必須です」というエラー メッセージが n 回表示されません。私がする必要があるのは、これらのメッセージを1 つのメッセージに置き換えることです:「いくつかのフィールドが必要です。」.
フォームの検証に関するドキュメントは非常に少なく、これを実現する方法の例が見つかりません。cleanメソッドでselfのエラー属性を反復しようとしましたが、明らかにその属性を設定できません。
アイデアはありますか?
django - Django では、ユーザー入力に関するビジネス ロジックがモデルになるかフォームになるかをどのように判断しますか?
特に単純なビジネス ルールの場合、ユーザー入力に関するビジネス ロジックをモデルにするか、フォームにするかを決定するのに常に問題があります。Productクラスがあり、その価格( Productの属性) が $1000 を超えてはならないというビジネス ルールがあるとします。バリデーションはモデルまたはフォーム レベルのどちらに配置しますか? そのような判断基準は何ですか?