Python
 Computer >> コンピューター >  >> プログラミング >> Python

DjangoでUpdateViewを追加するにはどうすればよいですか?


UpdateViewは、フロントエンドからモデルデータを更新するために使用されるDjangoのビューです。簡単に適用できるビルトインビューです。ビューを更新する際の管理ページのように機能します。この記事では、例を取り上げて、DjangoでUpdateViewを使用する方法を示します。

まず、Djangoプロジェクトとアプリを作成します。 "tutorial11"という名前でプロジェクトを作成しました "modelFormsDemo"という名前のアプリ 。

それでは、いくつかの基本的なことをしましょう。

settings.pyにアプリを追加します −

INSTALLED_APPS+ = ['modelFormsDemo']

プロジェクトのurls.py 、アプリのURLを含めます。

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
   path('admin/', admin.site.urls),
   path('', include('modelFormsDemo.urls'))
]
>

アプリのurls.py、 以下を追加-

from django.urls import path,include
from . import views

urlpatterns = [
   path('', views.home,name="home"),
   path('student/edit//', views.StudentUpdateView.as_view(), name="update"),
   path('success/', views.success, name='success')
]

ここでは、3つのURLを作成しました。 1つはフロントエンドのレンダリング用、もう1つは更新用のUpdateView用、更新後のリダイレクト用の成功です。

models.py内 、これを追加-

from django.db import models

# Create your models here
class Student(models.Model):
   name=models.CharField(max_length=100)
   standard=models.CharField(max_length=100)
   section=models.CharField(max_length=100)

ここでは、単純なモデルを作成しました。非常に基本的なモデルです。

views.py内 、次を追加します-

from django.shortcuts import render
from .forms import StudentForm
from django.views.generic.edit import UpdateView
from .models import Student
from django.urls import reverse_lazy

# Create your views here.
def home(request):
   if request.method=='POST':
      form=StudentForm(request.POST)
      if form.is_valid():
         form.save()
   stuForm=StudentForm()
   return render(request,'home.html', {"stu_form":stuForm})
class StudentUpdateView(UpdateView):
   model=Student
   fields="__all__"
   template_name='update_view.html'
   success_url='/success/'
def success(request):
   return render(request,'success.html')

ここでは、複雑なことは何もしていません。レンダリングするモデル、フィールド、およびテンプレートに名前を付けただけです。また、更新後に何をすべきかを指示する関数を定義しました。

forms.pyを作成します アプリディレクトリに次の行を追加します-

from django import forms
from .models import Student

class StudentForm(forms.ModelForm):
   class Meta:
      model=Student
      fields=['name','standard','section']

ここでは、レンダリングするフォームを作成しただけです。

次に、テンプレートを作成します フォルダを作成し、その中に3つのファイルを追加します。 home.html、 update_view.html 、およびsuccess.html。

home.html内 およびupdate_view.html

<!DOCTYPE html>
<html>
   <head>
      <title>TUT</title>
   </head>
   <body>
      {% for fm in stu_form %}
      <form method="post">
            {%csrf_token%}
            {{fm.errors}}<br>
            {{fm.label}}:{{fm}}<br>
         {%endfor%}
         <button type="submit">Submit</button>
      </form>
   </body>
</html>

success.html内 、次の行を追加します-

<!DOCTYPE html>
<html>
   <head>
      <title>TUT</title>
   </head>
   <body>
      <h2>Success</h2>
   </body>
</html>

これで、すべてが設定されました。これで、出力の確認に進むことができます。

出力

Home.html

DjangoでUpdateViewを追加するにはどうすればよいですか?

ここで、http://127.0.0.1:8000 / student / edit /(student object id)/にアクセスすると、update_view.htmlが表示されます。

Update_view.html

DjangoでUpdateViewを追加するにはどうすればよいですか?


  1. DjangoでMoneyフィールドを追加するにはどうすればよいですか?

    場合によっては、給与、手数料、収入など、お金に関連するデータをWebサイトに追加する必要があります。 Djangoは整数フィールドを提供しますが、多くの場合、それは私たちが望むようには機能しません。したがって、お金のフィールドを処理するために、モデルにお金のフィールドを追加する3番目のパッケージライブラリを使用できます。 プロジェクトとアプリを作成し、 MoneyFieldDemoという名前を付けました およびmyapp。 URLなどの基本的な設定を行います およびINSTALLED_APPS。 はい、ライブラリをインストールします- pip install django-mone

  2. Djangoデバッグツールバーをプロジェクトに追加するにはどうすればよいですか?

    Djangoツールボックスは、データベースクエリ、Django Webサイトの読み込み速度、およびその他の多くのものをデバッグするために使用されるデバッグツールです。デバッグツールバーは開発者の間で非常に人気があり、誰もがそれを使用しています。それでは、それを実装する方法を見てみましょう。 例 myappという名前のアプリを作成します 。 まず、 django-debug-toolbarをインストールします − pip install django-debug-toolbar 次に、 settings.pyのINSTALLED_APPSに「debug_toolbar」を追加します −