Django Academy · レッスン

Mixinsとas_view()

振る舞いを組み合わせ、CBVをurlsに接続します

レッスン 4/413 ステップ

「Mixinsとas_view()」はCoddyKit上の無料Django Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDjango Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Django Academyコースには全4レッスンが含まれています。

as_viewの実際の役割

クラスをそのままURLの対象にすることはできません。as_view()は、インスタンスを作成してリクエストを振り分ける関数を返します。

urlsでは必ずas_viewを呼び出す

urlsでは、クラスそのものではなくas_view()を呼び出します。Djangoが実際にルーティングするのは、この呼び出し可能なオブジェクトです。

path("", HomeView.as_view())

as_viewで属性を渡す

as_view()に値を渡すことで、URL内でクラス属性を上書きできます。サブクラス化せずに少しだけ変更したい場合に便利です。

HomeView.as_view(template_name="alt.html")

Mixinを使う

Mixinは、1つの特定の動作を追加する小さなクラスです。Mixinを組み合わせることで、再利用可能な部品からビューを構成できます。

Mixinは単独では使わない

Mixinは単独では使用しません。多重継承によって実際のビュークラスと組み合わせて初めて意味を持ちます。

LoginRequiredMixin

LoginRequiredMixinは匿名ユーザーをブロックし、ログイン画面へリダイレクトします。ログイン済みユーザーが必要なCBVに追加しましょう。

class DashboardView(LoginRequiredMixin, TemplateView):
    template_name = "dash.html"

MROでは順序が重要

Mixinを先に、その後にビューを記述します。Pythonはメソッドを左から右に解決するため、基底ビューが実行される前にMixinが動作できます。

ContextMixinがデータを追加する

汎用CBVにはすでにContextMixinが組み込まれているため、get_context_dataが存在します。MixinはDjangoのさまざまな場所で使われています。

複数のMixinを組み合わせる

複数のMixinを重ねて、ログインの要求や権限の追加など、複数の動作を1つのクラスにまとめられます。

Mixinは小さく保つ

優れたMixinは1つのことだけを行います。小さく焦点の絞られたMixinなら、予期しない衝突を起こさず簡単に再利用・組み合わせできます。

CBVは組み合わせて構成するクラス

まとめると、汎用CBVは実際にはMixinと基底ビューを積み重ねたものであり、as_view()によってurlsに接続されています。

クイックチェック

URL設定でas_view()を呼び出す必要があるのはなぜですか。

まとめ:Mixinとas_view

CBVについて学びました。as_view()はクラスをルーティング可能な呼び出し可能オブジェクトに変換し、Mixinは小さく再利用可能な動作を順序に注意して組み合わせ、1つのビューにします。🧩

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「Mixinsとas_view()」レッスンは無料ですか?

はい。「Mixinsとas_view()」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Django Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Django Academyコースには全4レッスンが含まれています。

「Mixinsとas_view()」で何を学びますか?

振る舞いを組み合わせ、CBVをurlsに接続します ブラウザで直接実行するハンズオンコードでDjango Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Django Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDjango Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「Mixinsとas_view()」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDjango Academyレッスンでコードを書いて実行できますか?

はい。すべてのDjango Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 関数ビューからビュークラスへ
  2. TemplateViewとget_context_data
  3. getメソッドとpostメソッドの処理
  4. Mixinsとas_view()
← Django Academyに戻る