問題タブ [django-class-based-views]
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 クラスベースのビューの逆 URL
私は次のようなことをしようとしています:
urls.py で:
views.pyで
しかし、これはうまくいかないようです。引数 '()' とキーワード引数 '{'pk': 13240L, 'foo': 'bar}' が見つからない 'video_detail' の逆を取得します。
ただし、これは機能します。
すなわち。逆呼び出しから foo: bar を削除します。これを行い、逆 URL に追加の引数を渡す正しい方法は何ですか?
python - 年ごとの Django ページネーション
一般的なビューを使用して、Web サイトのインデックス ページで、ニュース クリッピング データベースの最新の 100 項目をプレビューすることができました。
ここで、Web サイトの別の論理セクションでデータベースをページ分割する必要があります。年ごとにページ番号を付ける必要があります。毎年のエントリ数は気にしません。URL から年を取得し、その年のデータベース アイテム (つまり、/newsitems/validyearhere) を取得し、ユーザーにナビゲートする方法を提示したいだけです。何年もの間。Rails でこれを行う方法はありますが、Django では方法が見つかりませんでした。
現在展開されているモデルを使用できますか?
現在の日付フィールドに加えて、余分な年データベース フィールドを追加する必要がありますか? これに対応するために、スキーマを何らかの形で進化させる必要がありますか?
また、ユーザーがエントリのない年または年ではないデータを入力した場合、正常に失敗する必要があります。
私は Django に非常に慣れておらず、学習曲線が急であることに気付いているので、これをできるだけ簡単に説明してください。
python - Django、class-views:フォームのオブジェクトでセッションデータを保存するにはどうすればよいですか?
現在のリクエストのセッションのユーザー名を db オブジェクトに保存しようとしています。クラスベースのビュー内からこれを行うにはどうすればよいですか? これを行う「クリーンな」方法はありますか?何をオーバーライド/サブクラス化する必要がありますか?
次のようなモデルがあります。
組み込みの汎用ビューに基づくビューもありますdjango.views.generic.CreateView
。{{ form }}
また、モデルに付属するデフォルトの ModelForm クラスと、テンプレートのデフォルトを使用しています。私の知る限り、セッションと認証アプリ/ミドルウェアは適切にセットアップされています---新しいDjangoプロジェクトのデフォルトとして。
私はこの投稿を見つけましたが、これはほぼ同じことですが、間違った角度から、代わりに関数ビューを使用しています。
これまでの私の考えは、フォーム クラスの何かをオーバーライドし、ユーザー名をクリーンなデータに挿入することでした。より良い方法はありますか?正しい方法はありますか?
編集: これまでの解決策、動作しない、IntegrityError: author_id を null にすることはできません
これは、クラス ModelFormMixin にこの実装を使用する django/views/generic/edit.py で見つけたものに基づいて作成しました。
これは、上記の super().form_valid() によって呼び出されるメソッドです。
編集:私の解決策の問題は、Python の継承モデルの理解でした。スーパークラスが form_valid() を呼び出すと、オーバーライドではなく独自のバージョンが呼び出されます。私のコードはまったく実行されませんでした。
django - インスタンスがフォームに提供されていない場合、CreateViewは「DoesNotExist」をスローしています
次の設定で「DoesNotExist」エラーが発生します。しばらくデバッグしようとしましたが、わかりません。
これを行って「名前」と「タイプ」のデータを投稿すると、「DoesNotExist」エラーが発生します。UpdateView で、またはフォームを初期化するために「インスタンス」が渡されたときに、正常に動作するようです。
これは、エラーが発生する正確な場所です: /usr/lib/pymodules/python2.7/django/db/models/fields/related.py in get、行 301
何が起こっているのか知っている人はいますか?
ありがとう
django - モデルを更新するためのAjaxとModelForm
Ajax/POSTを使用してモデルを更新しようとしています。フォームのすべてのフィールドではなく、更新中のフィールドを送信できるようにしたいと思います。しかし、これによりフォームが無効になるようです。これを行う良い方法はありますか?
例えば:
名前を更新するときに、このデータを使用してPOSTを送信したい
とは対照的に
同様にタイプを更新します。
これを行う良い方法はありますか?
django - クラスベースのビューを使用して (get または post を介して) フォームを処理する方法は?
詳細またはリストビューはそれほど複雑ではないため、クラスベースのビューを学習しようとしています。
検索フォームがあり、クエリを送信して結果を表示するかどうかを確認したいだけです。
関数コードは次のとおりです(私のものではなく、djangoの本からのものです):
ajax の事実を無視して (今のところ問題を簡単にするために)、これをクラスベースのビューに変換するにはどうすればよいでしょうか?
私はすぐに次のようなことを試しました:
動作しません。「'NoneType' オブジェクトは呼び出し可能ではありません」というメッセージが表示されます
結構です、私は今日このようなものから始めました。
では、取得 (および必要に応じて投稿) 要求を管理できるクラスベースのビューを作成するにはどうすればよいでしょうか?
別の例があります:
これは最初のものと同じように「変換」されますか? それとも、異なるビューを拡張しますか?
私はとても混乱しています。最初が ProcessFormView で 2 番目が FormView かどうかはわかりません。
ありがとう。
編集:私が終了したソリューション:
これは、同じ質問を持つ人に任せます:)
python - get リクエストでフォームを検証する方法
私の完璧主義のやり方では、あまり文書化されていないクラスベースのビューについてさらに質問するためにここにいます。
クラスベースのビューについて学習し、コードに潜んでいるのに 5 時間ほど費やしたところ、質問がありました。
私がやろうとしていることはばかげているのかもしれません。
簡単な例を挙げます:
これは完全に有効なクラスです (そうですよね?)。
フォームがあり、クエリ パラメーターを使用して GET 要求を行います。
魅力のように機能します。
しかし、想像してみてください... ある種の攻撃を防ぐためにクエリ入力を検証すると、クエリが悪意があることがわかったので、検証エラーを入力しました。
古い関数では、フォーム インスタンス (空) があり、必要に応じてデータと検証エラーを入れます。空の場合 (最初のリクエスト)、またはエラーでいっぱいの場合 (悪意のあるクエリの場合) は、常にそのインスタンスを返します。
問題は、クラスベースのビューにあります。私の get メソッドでは、SearchFormの追加のインスタンスを使用するので、検証用のものを配置するとそこにあり、親でgetを呼び出すと、空になる「form_class」のインスタンスが使用されます。
したがって、常に同じフォームを使用する方法が必要だと思います。つまり、request メソッドを呼び出し、form_class (新しいフォームを作成しない) を選択し、データを渡し、検証すると、父親がそれを返します。検証のものを含むフォーム。
これを正しく説明したかどうかはわかりません。要するに、私は get でフォームのコピーを作成していますが、空になる別のコピーを持つ親の get を返すので、テンプレートを表示すると、送信されたフォームが空であるためエラーは発生しません。
何か案は?ありがとう。
django - 関数ベースのビューを、フォームのみでモデル(オブジェクト)を含まないクラスベースのビューに変換する
現在、これはユーザープロファイル内でパスワードが変更される方法です。モデルが含まれていないことを知って、これをクラスベースのビューに変換する最良の方法は何ですか?
これはパスワードを変更するためのビューです
これはパスワードを変更するためのフォームです
これはURLです
ご覧のとおり、検証時にパスワードが「ユーザー」パスワードフィールドに置き換わるため、モデルは含まれていません。これをクラスベースのビューに変換する簡単な方法はありますか?それは重要ですか?
django - クラスビューの名前空間
クラスビューで名前空間name-idを取得できません。誰もが知っていますか?
私がしたくないのは、クエリセットをフィルタリングして、各名前空間に適切なモデルのみを取得することです。
これが私が持っているコードです:
urls.py
items.urls.py
ItemListView.py
django - 日付ベースのオブジェクトとフォームの両方を表示する django クラスベースのビューを作成する良い方法は何ですか?
日付ベースのオブジェクトとフォームの両方を表示するクラスベースのビューを作成する最良の方法は何ですか? ユース ケースは、今日のオブジェクトを表示し、連絡先フォームを備えたサイト インデックス ページ ビューです。
最初に、TodayArchiveView とContactFormViewをサイト インデックス ページ ビューのミックスインとして使用することを考えました。ただし、TodayArchiveView は BaseDateListView を継承し、ContactFormView は ProcessFormView を継承しています。ProcessFormView と BaseDateListView の両方が get() を実装し、最終的にはまったく異なるデータで render_to_response を呼び出します。(これについての私の考えが正しいかどうかさえわかりません。私はまだ多重継承について頭を悩ませています。)
次に、2 つの get の機能を組み合わせた独自の get() を作成することを考えました。これは、私が知る限り、これらの機能は衝突しないためです。その結果、次のようになりました。
これは正しいアプローチですか?
より大きな質問として、どのミックスインを相互に使用できるかをどうやって知るのでしょうか? 両方のクラスが get() を実装していることを認識するために、django のソースにアクセスする必要がありました。