問題タブ [django-generic-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.

0 投票する
1 に答える
3391 参照

python - Djangoのクラスベースのジェネリックビューの問題

Djangosクラスベースのジェネリックビューを使用してCRUDアプリケーションを作成しようとしています。以下は、データベースに新しいユーザーを作成するために作成したコードです。

ユーザーに表示する成功メッセージを追加するには、post機能を拡張する必要があることに注意してください。この関数が呼び出されたときに、送信されたフォームに有効なデータが含まれているかどうかが判断されないため、これは適切な方法ではないことを私は知っています。だから私の質問は、Djangosメッセージングフレームワークをクラスベースのジェネリックビューと組み合わせる推奨される方法はありますか?

0 投票する
2 に答える
4106 参照

django - Django - サブクラス化された汎用ビュー - URL パラメータ

ビデオの詳細ページを他のデータとともに表示する必要があります。そのためDetailViewに、いくつかの変数をコンテキストに追加するためにオーバーライドしたものを使用します。

コード部分は次のとおりです。

pkこれがビデオのIDです。現在のユーザーが選択したビデオのレートを取得する必要があります。

0 投票する
3 に答える
3408 参照

python - Django-一般的なビューを使用するかどうか?

私はDjangoサイトで簡単なポーリングチュートリアルを行っていましたが、最後のトピックは一般的なビューの紹介です。すべてのURLパターンに対してカスタムビューを作成する必要性を回避する便利な方法。

私が理解している限り、これが主なアイデアです。

1)リクエスト->URLパターン->表示->テンプレート

また

2)リクエスト-> URLパターン(汎用ビュー)[->オプションのテンプレート]

2は必要なコードが少ないようで、4つではなく2つのステップしかありませんが、欠点として、URLパターンにより多くのものを貼り付け、より多くの自動マジックが行われ、ビューが2か所で定義されるようになりました。

私はURLパターンをそれだけにするというアイデアが本当に好きです-パターンであり、追加の定型文を追加しないでください。また、単純なビューも含めてすべてのビューを明示的に定義するというアイデアも気に入っています。これにより、後でファイルを行き来することなく、すべてのビューを見つけることができます。さらに、automagicは、最初から(少なくともDjangoの最初から)作成するものよりもカスタマイズが難しいことは誰もが知っています。

私は何かが足りないのですか?後で一般的なビューをまったく使用しないことに悩まされるような大きな間違いをしているのでしょうか。

0 投票する
2 に答える
630 参照

django - 一般的な編集URLがDjangoで機能しない

Djangoジェネリックビューを使用していますが、入力すると

次に、構成ファイルにURLが含まれていないことを示します

私のURLファイルは

作成部分は正常に機能しています

0 投票する
2 に答える
78 参照

django - Django で URL 書き換え構成の数を減らす方法

私はこのリストをdjangoに持っています。これらは同一に見えます。この4本の線から1本の線を作る方法はありますか

0 投票する
1 に答える
1088 参照

django - password_changeビューを使用したテンプレートのDjango URLエラー

1.2.3-3+squeeze1Debian スクイーズでDjango を使用しています。

に対応するアプリケーションで Django パスワード変更ビューを使用しようとしていますdjango.contrib.auth.views.password_change。これは簡単なように見えますが、問題が発生しています。

簡潔さと完全性のために、オンラインのアプリケーション ファイルを参照します。アプリケーションはbixfileです。対応する Django プロジェクトはbixprojです。

url.py の関連する行は https://bitbucket.org/faheem/bixfile/src/49bcbab3a7be/urls.py#cl-65、つまり

これにより、それが使用されているすべてのテンプレートが壊れます。現在、 一連のテンプレートに含まれているテンプレート calgb_base.html のhttps://bitbucket.org/faheem/bixfile/src/71de33d01f43/templates/calgb_base.html#cl-21行でのみ使用しています。テンプレートhttps://bitbucket.org/faheem/bixfile/src/71de33d01f43/templates/index.htmlに対応する最上位のインデックス ビューを含み ます。calgb_base.html の行は

https://bitbucket.org/faheem/bixfile/src/71de33d01f43/urls.py#cl-16 および https://bitbucket.org/faheem/bixfile/src/71de33d01f43/viewsに対応するトップindexビュー に移動すると、 .py#cl-203 で始まるエラーが表示されます

完全なトレースバックが役に立つとは思えませんが、 http://paste.lisp.org/display/122996に貼り付けました。

このエラーは、Apache 2.2 と mod-wsgi の両方、および組み込みの Django テスト サーバー (以下を参照) で再現可能です。

/password_change/ 相対 URL に直接アクセスすると、期待どおりにパスワード変更フォームが表示されます。

奇妙なことに、このパスをテストするために作成したすべてのテストがパスし、期待される結果が生成されます。たとえば 、 testIndexUrltestIndexView 、および test_password_change_urlを参照してください。

bixproj次のコマンドを使用して、ディレクトリからテストを実行できます

このエラーを再現したい場合は、比較的簡単です。

まず、プロジェクト ( bixproj) とアプリケーション リポジトリ ( ) をダウンロードしますbixfile。そう

次に、bixfile が Python パスにあることを確認します。DATABASES を sqlite を使用するように変更します。次に変更

その後、実行中

ローカル マシンのbixprojディレクトリで、デフォルトの URL に移動すると http://127.0.0.1:8000/、エラーが表示されます。

必要に応じて、エラーを示す最小限の例を作成できると思いますが、このエラーが明白であり、そうする必要がないことを本当に望んでいます。前もって感謝します。

0 投票する
1 に答える
1550 参照

django - Django で独自の汎用ビューを展開する

Django のドキュメントでは、DetailView が構成されているクラスベースのジェネリック ビューで、View、SingleObjectMixin、SingleObjectTemplateResponseMixin について言及しています。モデル行を自動的に生成できるように、ModelForm で object_detail ビューを実行する汎用ビューを作成することに興味があるため、これを試しています。

DetailView を複製するために、次のようにクラスを作成しようとしました。

list_detail.object_detail の代わりに formdisplay を使用すると、エラーが発生します

これを行う方法についてのヒントはありますか?

また、インポートステートメントの書き方に関するドキュメントはどこにありますか? ドキュメントでそれを見つけることができなかったので、何からインポートするかを見つけるためにグーグルしなければなりませんでした。

前もって感謝します、スティーブ

0 投票する
1 に答える
7295 参照

django - ModelFormでクラスベースのジェネリックビューDetailViewを使用すると、バグが明らかになります-続行するにはどうすればよいですか?

機能的なWebサイトが、チュートリアルの一般的なビューとどれほど迅速に連携できるかに感銘を受けました。また、フォーム処理のワークフローも優れています。ModelFormヘルパークラスを使用して、作成したモデルからフォームを作成しましたが、非常に多くの機能が一緒になっているのを見てうれしく思いました。一般的なlist_detail.object_detailを使用したとき、表示できるのが個別のフィールドだけであることに失望しました。ModelFormクラスにレンダリング用の情報が含まれていることを知っていたので、汎用ビューでModelFormを使用したいと思いました。

私はstackoverflowについていくつかの方向性を得るために周りに尋ねていました、そしていくつかのポスターからの答えとコメントに感謝します。これを機能させる方法を理解しましたが、DetailViewにバグがあります。このソリューションには回避策が含まれています。

汎用ビューでModelViewを使用し、すべてのフィールドを取得して自動的にレンダリングするには、次のように機能します。

プロジェクトを作成し、その中にアプリケーション入院患者を作成します。

あなたが持っている場合

できます。クラスベースのジェネリックビューを使用するための手順は、https: //docs.djangoproject.com/en/1.3/topics/class-based-views/にあります。手順はかなり明確です。物事を機能させるための鍵は、get_objectを再定義することです。「追加作業の実行」セクションのドキュメントでは、これを行う方法、元のバージョンのget_objectを呼び出してから、追加作業を行う手順について説明しています。私が気付いたのは、returnオブジェクトがModelFormオブジェクトである可能性があるということです。get_objectが返すオブジェクトは、レンダリングでテンプレートに直接入ります。取得した入院患者オブジェクトを取得し、それをInpatientFormで実行することにより、フォームとしてビューに渡して、それ自体をレンダリングできます。

バグについて:DetailViewのバグは、get_template_names関数が存在しない構造からテンプレート名を作成しようとすることです。https://code.djangoproject.com/browser/django/trunk/django/views/generic/detail.pyの127〜140行目に、 SingleObjectTemplateResponseMixin.get_template_namesがあります。

エラーは、131行目のコードが実行され、エラーメッセージ<'ModelFormOptions'オブジェクトに属性'app_label'>がない状態で終了することです。_metaオブジェクトが定義されていると結論付けます。問題は、ModelFormでクラスMetaが定義されていることだと思います。そのメタには、おそらく期待されるフィールドが設定されていません。回避策は、get_template_namesを書き直して、正しいテンプレートを返すことです。

私はDjangoとPythonを初めて使用します。私が以前に尋ねた以下の質問に対する貢献者の回答とコメントに感謝します。( list_detail.object_listからlist_detail.object_detailへのリンクの配置、object_detailでの フォームの使用、Djangoでの独自のジェネリックビューのローリング )

バグを報告するにはどうすればよいですか?

0 投票する
1 に答える
568 参照

django - DetailViewでインライン表示するにはどうすればよいですか?

Projectモデルがあります。このモデルにDaysインラインがあります。

DetailViewを使用してそれらを表示するにはどうすればよいですか?

私のviews.pyは次のようになります:

どうすればこれに沿って1日を終えることができますか?

私はもう試した:

しかし、これは機能しません。get_object_or_404また、私が汎用ビューを使用しているのに、とにかく引き出しを行っているのは無意味に思えDaysます。

これを適切に行うにはどうすればよいですか?

0 投票する
1 に答える
265 参照

django - 高品質で複雑な django プロジェクトから学ぶ

適切に設計および作成されており、学習者に役立つ可能性のあるオープンソースの django プロジェクトには、どのようなものがありますか。たとえば、洗練されたジェネリック ビューが現場でどのように機能するかを知りたい場合は、それが大規模な Web サイトでどのように実装されているかを知りたいと思います。