自動化無しに生活無し

WEBとかAIとかLinux関係をひたすら書く備忘録系ブログ

【Django】createメソッドを使用して、新規作成する【バリデーションしない点に注意】

thumbnail

.create()を使うことで手軽に新規作成ができる。

Model.objects.create()

40分Djangoを元に組むとこうなる。

from django.shortcuts import render,redirect

from django.views import View
from .models import Topic


class IndexView(View):

    def get(self, request, *args, **kwargs):

        # .create()を使うことで.save()を使わなくても新規作成ができる。返り値は新規作成したモデルオブジェクト
        topic   = Topic.objects.create(comment="これはテストです。")
        print(topic)

        # バリデーションまではされない点に注意。
        topic   = Topic.objects.create(comment="")
        print(topic)


        topics  = Topic.objects.all()
        context = { "topics":topics }


        return render(request,"bbs/index.html",context)

    def post(self, request, *args, **kwargs):

        posted  = Topic( comment = request.POST["comment"] )
        posted.save()

        return redirect("bbs:index")

index   = IndexView.as_view()

バリデーションまではしてくれないので注意。

スポンサーリンク

シェアボタン

Twitter LINEで送る Facebook はてなブログ