Djangoのフィールドはクラスビューをソート

字段排序
{帯域%でバンドの%}
<a href="/show_player/?id={{ band.id }}"> {{band.name}}:{{band.player_set.all |長さ}} < / A>
{%ENDFOR%}

 

 

クラスビュー

django.viewsから見るのインポート

#类视图获取列表及详情
クラスCategoodlist(ビュー):
:DEF(自己、リクエスト)を取得
ケイト= Cate.objects.all()
データ= { 'ケイトを':ケイト}
リターンは、(リクエストをレンダリング'ウェブ/ index.htmlを'、データは)
デフ(自己、リクエスト)ポスト:
( 'ポスト'のHttpResponseを返す)
デフ(自己、要求)に置く:
'置く'(のHttpResponseを返す)
デフ(自己、リクエスト)を削除:
のHttpResponseを返します( '削除')


urls.py:
django.views.generic輸入TemplateView#クラスビューから

利点のクラスビュー:
他の場所は、クラスの特定のメソッドを使用する必要がある場合はビュー関数の可読性の良いクラスビューの相対は、高い再利用性を持ち、クラスの直接の後継者が閲覧することができます
クラスビューをクラスビューのビューの定義を使用すると、Djangoのによって提供される親クラスから継承する必要がある
:導入法
django.views.genericインポートビューから
または:django.views.generic.baseインポートビューから設定をルーティングするとき、(クラスas_viewビューの使用を必要とします)を追加登録する方法

 

テンプレート指定Django-ルート
ビューは、TemplateView、RedirectViewは3クラスは、Djangoのクラスのビューを作成するための機能のほとんどを実装しています。彼らは、ビューの父は、彼らはそれを継承することができ、単独で使用することができると考えることができます。彼らは、プロジェクトに必要なすべての機能を提供しないことがあり、この場合には、あなたはミックスインと総称クラスがベースのビューを使用することができます。
多くのDjangoの構築されたビューから継承、またはビュークラスに基づいて、他のミックスインクラスの様々な。このため、継承チェーンの非常に重要なので、見出しの祖先(MRO)の計上上位クラス。MROメソッド解決順序の頭文字を頭文字。
、ビューdjango.views.generic.base.Viewはメインクラスの基本的な観点に基づきます。他のすべてのクラスベースのビューは、基本クラスから継承されます。それについての一般的なビューは、django.viewsからインポートすることも可能であるが、厳密な意味ではありません。
フローチャートの方法
ディスパッチ()
HTTP_METHOD_NOT_ALLOWED()
オプション()

プロパティ:HTTPメソッド名http_method_namesのリストは、この見解を受け入れます。デフォルト:[ '取得'、 'ポスト '、 '置く'、 'パッチ'、 '削除'、 '頭'、 'オプション'、 'トレース']
方法:classmethodas_view(** initkwargs)が呼び出し可能なビューを返し、ビューは、要求を受信し、応答を返す:
応答= MyView.as_view()(リクエスト)が
ビューを返し、view_class view_initkwargs特性を有します。

例のviews.py:

django.httpのインポートからのHttpResponse django.viewsインポートビューから
クラスMYVIEW(ビュー):
:DEF(自己、要求、* argsを、** kwargsから)を得る
リターンはHttpResponse( 'こんにちは、世界!')

例えばurls.py:
django.urlsインポート経路から
MYVIEWインポートからはmyapp.views
呼要求/応答サイクルに= [パス( '鉱山/'、MyView.as_view()、NAME = 'MYVIEW')]をurlpatternsときのHttpRequestをビュー、要求はビューのプロパティに割り当てられます。URLパターンは、任意の位置から捕捉及び/又はキーワードとパラメータは、引数のkwargsからプロパティに割り当てられています。その後、発送は()と呼ばれます。
ディスパッチ(リクエスト、引数、* kwargsから)ビューの部分のビュー-パラメータと要求を受信する方法、およびHTTPレスポンスを返します。
デフォルトの実装では、HTTPメソッドをチェックし、メソッドは、指定されたHTTPマッチング方法委譲しようとします。()A、POSTtoポストを(得るために委任することがGET )、 などが挙げられます。
デフォルトでは、HEADリクエストは、getを委任する()。あなたが別の方法ヘッドがGET要求する必要がある場合は、頭()メソッドをカバーすることができます。例えば、他のHTTPメソッドのサポートを参照してください。
HTTP_METHOD_NOT_ALLOWED(リクエスト、引数、* kwargsから)を使用している場合は、HTTPメソッドは、このメソッドが呼び出されます、ビューを呼び出して対応していません。
デフォルトの実装では、許可された方法のHttpResponseNotAllowedプレーンテキストのリストを返します。
処理要求ハンドラオプションのHTTP動詞に応じて、オプション(リクエスト、引数、* kwargsから)。許可ビューは、応答はHTTPメソッド名のリスト・ヘッダを返すことができます。
二、URLで捕獲コンテキストパラメータを含むテンプレート与えTemplateView django.views.generic.base.TemplateViewプレゼンテーション、。
このビューは、ビュークラスを継承
django.views.generic.base.TemplateResponseMixin
django.views.generic.base.ContextMixin
django.views.generic.base.Viewを

方法流程图
派遣()HTTP_METHOD_NOT_ALLOWED()get_context_data()
views.py:实例
django.views.generic.baseインポートTemplateViewからの
記事のインポートarticles.modelsから
クラスHomePageViewを(TemplateView):
テンプレート名= "home.html"

デフget_context_data(自己、** kwargsから):
コンテキスト=スーパー()get_context_data(** kwargsから)
コンテキスト[ 'latest_articles'] = Article.objects.all()[:5]
リターン・コンテキスト

例えばurls.py:
django.urlsインポート経路から
myapp.viewsインポートHomePageViewから
urlpatternsの= [パス( ''、HomePageView.as_view()、NAME = 'ホーム')] 3、RedirectViewのdjango.views.generic.base。 RedirectViewは、指定されたURLにリダイレクト。
辞書スタイルが含まれていてもよいURL与えられた文字列の形式は、URLで撮影したパラメータに基づいて補間されます。キーワード補間は常に(なくても入ってくるパラメータの場合)で行われているので、
与えられたURLがNoneの場合、HttpResponseGone(410)を発行します。
ビュークラスのこのビューは、継承
メソッドのdjango.views.generic.base.Viewフローチャート
ディスパッチ()
HTTP_METHOD_NOT_ALLOWED())(get_redirect_url

示例views.py:
django.views.generic.baseインポートRedirectViewからget_object_or_404をインポートdjango.shortcutsから
記事のインポートarticles.modelsから
クラスArticleCounterRedirectViewを(RedirectView):
永久= Falseの
QUERY_STRING = Trueの
pattern_name = '記事-詳細'

デフget_redirect_url(自己、* argsを、** kwargsから):
記事= get_object_or_404(記事、PK = kwargsから[ 'PK'])
article.update_counter()
リターンスーパー()get_redirect_url(* argsを、** kwargsから)

例urls.py:
django.urlsからはRedirectViewからのインポートインポートパスをdjango.views.generic.base
インポートArticleCounterRedirectView article.views、ArticleDetailから
urlpatterns = [パス( 'カウンタ//'、ArticleCounterRedirectView.as_view()、名前=「Articleこの記事をされました-Counter ')、パス('詳細 // 'ArticleDetail.as_view()、名前='記事-詳細')、パス('行くツージャンゴ/ 'RedirectView.as_view(URL =' https://でdjangoproject.com「)、名前は=」行く -to-ジャンゴ「)、] プロパティの
URLは、文字列として文字列にリダイレクトします。それは410(ゴーン)HTTPエラーがトリガされた場合はなし。
リダイレクトするURLパターンに名前をpattern_name。同じ引数とkwargsからは逆転を完了します到来すると、このビューを使用します。
それは永久的であるべきかどうかを永久的なリダイレクト。ここでの唯一の違いは、HTTPステータスコードが返されています。Trueの場合はFalseは、リダイレクタ302は、ステータスコードを使用している場合、リダイレクトはステータスコード301を使用します。デフォルトでは、永久はFalseです。
GETクエリ文字列をQUERY_STRINGかどうかを新しい場所に渡されます。Trueの場合、クエリ文字列をURLに追加します。Falseの場合は、クエリ文字列を破棄します。デフォルトでは、QUERY_STRINGはFalseです。
方法
get_redirect_url(引数、* kwargsから)構造のターゲットURLをリダイレクトします。
デフォルトの実装のURLは、文字列を開始し、名前のパラメータ文字列を実行する際に撮影し、拡張URLの%というグループを使用して使用します。
URLが設定されていない場合、get_redirect_url((URLを使用してキャプチャpattern_nameコンテンツを逆にする)という名前で、無名の試みを使用して設定)。
要求QUERY_STRING場合は、生成されたURLに付加する文字列を照会します。サブクラスは限りメソッドは、URL文字列をリダイレクトすることができます返すように、彼らが望む任意の動作を実装することができます。

 

おすすめ

転載: www.cnblogs.com/wyf2019/p/10959536.html