0Pricing
Django Academy · レッスン

CreateViewとUpdateView

モデルから追加・編集ページを構築します

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

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

Pages That Write Data

Showing data is half the job. To add and edit records you reach for CreateView and UpdateView.

Meet CreateView

CreateView builds an add page: it renders a form, validates input, and saves a new record for you.

A Form from Fields

Tell CreateView the fields you want, and it generates a matching form straight from your model.

from django.views.generic import CreateView

class PostCreate(CreateView):
    model = Post
    fields = ["title", "body"]

The Form Template Name

CreateView and UpdateView both look for app/model_form.html, like post_form.html, by default.

Rendering the Form

Inside the template the generated form arrives as form, so you render its fields and a submit button.

<form method="post">{% csrf_token %}
  {{ form.as_p }}
  <button>Save</button>
</form>

Meet UpdateView

UpdateView works just like CreateView, but it loads an existing record first so the form starts pre-filled.

Editing an Existing Record

UpdateView reads a pk from the URL, fetches that object, and saves your changes back to it.

from django.views.generic import UpdateView

class PostUpdate(UpdateView):
    model = Post
    fields = ["title", "body"]

Where to Go After Saving

After a successful save, the view redirects. Set success_url to control exactly where users land next.

from django.urls import reverse_lazy

class PostCreate(CreateView):
    success_url = reverse_lazy("post_list")

Or Let the Model Decide

Skip success_url by giving your model a get_absolute_url; the view will redirect there automatically.

def get_absolute_url(self):
    return reverse("post_detail", args=[self.pk])

Wiring the Edit URLs

Create needs no pk, but update does, so its URL captures one with as_view() like the others.

path("new/", PostCreate.as_view()),
path("<int:pk>/edit/", PostUpdate.as_view()),

Shared Form Power

Because both reuse the same form and template, add and edit pages stay consistent with almost no extra code. 💪

Quick Check

What is the main difference between CreateView and UpdateView?

Recap: Create and Update

You used CreateView to add records and UpdateView to edit them, shared one form template, and steered redirects with success_url. 🎉

よくある質問

「CreateViewとUpdateView」レッスンは無料ですか?

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

「CreateViewとUpdateView」で何を学びますか?

モデルから追加・編集ページを構築します ブラウザで直接実行するハンズオンコードでDjango Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「CreateViewとUpdateView」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. ListViewとDetailView
  2. CreateViewとUpdateView
  3. DeleteViewとsuccess_url
  4. get_querysetとTemplatesのオーバーライド
← Django Academyに戻る