Mixinsとas_view()
振る舞いを組み合わせ、CBVをurlsに接続します
「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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 関数ビューからビュークラスへ
- TemplateViewとget_context_data
- getメソッドとpostメソッドの処理
- Mixinsとas_view()