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

DjangoにDeleteViewを追加する


DeleteViewは、フロントエンドからモデルデータを削除するために使用されるDjangoのビューです。簡単に適用できるビルトインビューです。ビューを削除する際の管理ページのように機能します。これは、実際のプロジェクトで非常に役立ちます。

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

それでは、いくつかの基本的なことをしましょう。 settings.pyにアプリを追加します −

INSTALLED_APPS+ = ['modelFormsDemo']

プロジェクトのurls.py

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

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

ここにアプリのURLを含めました。

アプリのurls.py

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

urlpatterns = [
   path('', views.home,name="home"),
   path('student/delete//', views.StudentDeleteView.
as_view(),name="delete"),
   path('success/',views.success,name='success')
]

ここでは、3つのURLを作成しました。1つはフロントエンドのレンダリング用、DeleteViewは削除用、Successは削除後のリダイレクト用です。

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 DeleteView
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 StudentDeleteView(DeleteView):
   model=Student
   template_name='delete_view.html'
   success_url=reverse_lazy("success")

ここでは、ホームビューでフロントエンドをレンダリングし、DeleteViewで delete_view.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、delete_view.html およびsuccess.html。

home.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>

delete_view .html −

<!DOCTYPE html>
<html>
   <head>
      <title>TUT</title>
   </head>
   <body>
      <form method="post">{% csrf_token %}
         <p>Are you sure you want to delete "{{ object }}"?</p>
         <input type="submit" value="Confirm">
      </form>
   </body>
</html>

success.html内 −

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


3つすべてがレンダリングしているHTMLファイルです。 home.html 学生を追加するためのものです、 delete_view.html 学生を削除するためのものであり、 success.html リダイレクト用。

これで、出力の確認に進むことができます。

出力

Home.html

DjangoにDeleteViewを追加する


https://127.0.0.1:8000/student/delete/(student object id)/にアクセスすると、delete_view.html。が表示されます。

Delete_view.html


DjangoにDeleteViewを追加する


  1. DjangoモデルにJSONフィールドを追加する

    この記事では、DjangoモデルにJSONフィールドを追加する方法を説明します。 JSONは、データをキーと値の形式で保存するための単純な形式です。中括弧で書かれています。多くの場合、開発者のWebサイトでは、開発者データを追加する必要があり、そのような場合はJSONフィールドが役立ちます。 まず、Djangoプロジェクトとアプリを作成します。 INSTALLED_APPSにアプリを追加したり、URLを設定したり、基本的なモデルを作成したり、そのフォームをHTMLファイルにレンダリングしたりするなど、すべての基本的なことを行ってください。 例 django-jsonfieldをインストー

  2. Edgeブラウザのお気に入りをHTMLファイルにインポートまたはエクスポートする方法

    別のブラウザに切り替える場合は、Edgeのお気に入りを移行または転送するオプションがあると便利です。 MicrosoftEdgeはこのオプションを提供します。 Edgeブラウザのお気に入りをインポートまたはエクスポートできます HTMLファイルに。それがどのように行われるかをご覧ください! Edgeブラウザのお気に入りをHTMLファイルにインポートまたはエクスポートする ブックマークを使用すると、特定のWebブラウザにWebページを保存して、いつでもすばやくアクセスできるようになります。他のブラウザでもこの機能を有効にすると、時間と労力の両方を節約できます。 Microsoft Edge