以下のビューは、このページで説明され、内容を編集するための基礎を提供します:
django.views.generic.edit.FormViewdjango.views.generic.edit.CreateViewdjango.views.generic.edit.UpdateViewdjango.views.generic.edit.DeleteView参考
The messages framework contains
SuccessMessageMixin, which
facilitates presenting messages about successful form submissions.
注釈
このページの例のいくつかは、Author モデルが下記の通り myapp/models.py 内で定義されているものと見なしています。
from django.db import models
from django.urls import reverse
class Author(models.Model):
name = models.CharField(max_length=200)
def get_absolute_url(self):
return reverse('author-detail', kwargs={'pk': self.pk})
FormView¶django.views.generic.edit.FormView¶フォームを描画するビューです。エラー時には、バリデーションエラーとともにフォームを再描画します。成功時には、新しい URL にリダイレクトします。
継承元 (MRO)
このメソッドは、以下のビューからメソッドと属性を継承しています:
django.views.generic.base.TemplateResponseMixindjango.views.generic.edit.BaseFormViewdjango.views.generic.edit.FormMixindjango.views.generic.edit.ProcessFormViewdjango.views.generic.base.View例 myapp/forms.py:
from django import forms
class ContactForm(forms.Form):
name = forms.CharField()
message = forms.CharField(widget=forms.Textarea)
def send_email(self):
# send email using the self.cleaned_data dictionary
pass
Example myapp/views.py:
from myapp.forms import ContactForm
from django.views.generic.edit import FormView
class ContactFormView(FormView):
template_name = 'contact.html'
form_class = ContactForm
success_url = '/thanks/'
def form_valid(self, form):
# This method is called when valid form data has been POSTed.
# It should return an HttpResponse.
form.send_email()
return super().form_valid(form)
例 myapp/forms.py:
<form method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Send message">
</form>
django.views.generic.edit.BaseFormView¶A base view for displaying a form. It is not intended to be used directly,
but rather as a parent class of the
django.views.generic.edit.FormView or other views displaying a
form.
継承元 (MRO)
このメソッドは、以下のビューからメソッドと属性を継承しています:
CreateView¶django.views.generic.edit.CreateView¶オブジェクトの作成、(もしある場合は) バリデーションエラーとフォームの再描画、そしてオブジェクトの保存のフォームを表示するビューです。
継承元 (MRO)
このメソッドは、以下のビューからメソッドと属性を継承しています:
django.views.generic.detail.SingleObjectTemplateResponseMixindjango.views.generic.base.TemplateResponseMixindjango.views.generic.edit.BaseCreateViewdjango.views.generic.edit.ModelFormMixindjango.views.generic.edit.FormMixindjango.views.generic.detail.SingleObjectMixindjango.views.generic.edit.ProcessFormViewdjango.views.generic.base.View属性
template_name_suffix¶GET リクエストに描画された CreateView のページは、'_form' の template_name_suffix を使います。 例えば、この属性をオブジェクト (例えば Author モデル) を作成するビューのために '_create_form' に変更すると、 デフォルトの template_name は 'myapp/author_create_form.html' となります。
object¶CreateView を使うとき、self.object にアクセスできます。これは作成されているオブジェクトです。オブジェクトがまだ作成されていない場合、値は None になります。
Example myapp/views.py:
from django.views.generic.edit import CreateView
from myapp.models import Author
class AuthorCreateView(CreateView):
model = Author
fields = ['name']
例 myapp/author_form.html:
<form method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Save">
</form>
django.views.generic.edit.BaseCreateView¶A base view for creating a new object instance. It is not intended to be
used directly, but rather as a parent class of the
django.views.generic.edit.CreateView.
継承元 (MRO)
このメソッドは、以下のビューからメソッドと属性を継承しています:
メソッド
get(request, *args, **kwargs)¶Sets the current object instance (self.object) to None.
post(request, *args, **kwargs)¶Sets the current object instance (self.object) to None.
UpdateView¶django.views.generic.edit.UpdateView¶現存するオブジェクトの編集、(もしある場合は) バリデーションエラーとフォームの再描画、そしてオブジェクトの保存のフォームを表示するビューです。(フォームのクラスが手動で指定されていない限り) オブジェクトのモデルのクラスから自動的に生成されたフォームを使います。
継承元 (MRO)
このメソッドは、以下のビューからメソッドと属性を継承しています:
django.views.generic.detail.SingleObjectTemplateResponseMixindjango.views.generic.base.TemplateResponseMixindjango.views.generic.edit.BaseUpdateViewdjango.views.generic.edit.ModelFormMixindjango.views.generic.edit.FormMixindjango.views.generic.detail.SingleObjectMixindjango.views.generic.edit.ProcessFormViewdjango.views.generic.base.View属性
template_name_suffix¶GET リクエストに描画された UpdateView のページは、'_form' の template_name_suffix を使います。 例えば、この属性をオブジェクト (例えば Author モデル) を作成するビューのために '_update_form' に変更すると、 デフォルトの template_name は 'myapp/author_update_form.html' となります。
object¶UpdateView を使うとき、self.object にアクセスできます。これは更新されているオブジェクトです。
Example myapp/views.py:
from django.views.generic.edit import UpdateView
from myapp.models import Author
class AuthorUpdateView(UpdateView):
model = Author
fields = ['name']
template_name_suffix = '_update_form'
例 myapp/author_update_form.html:
<form method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Update">
</form>
django.views.generic.edit.BaseUpdateView¶A base view for updating an existing object instance. It is not intended to
be used directly, but rather as a parent class of the
django.views.generic.edit.UpdateView.
継承元 (MRO)
このメソッドは、以下のビューからメソッドと属性を継承しています:
メソッド
get(request, *args, **kwargs)¶Sets the current object instance (self.object).
post(request, *args, **kwargs)¶Sets the current object instance (self.object).
DeleteView¶django.views.generic.edit.DeleteView¶確認ページを表示して、現存するオブジェクトを削除するビューです。与えられたオブジェクトは、リクエストメソッドが POST の場合、単に削除されます。もしこのビューが GET を通じて取得された場合は、同じ URL に POST するフォームを含む確認画面を表示します。
継承元 (MRO)
このメソッドは、以下のビューからメソッドと属性を継承しています:
django.views.generic.detail.SingleObjectTemplateResponseMixindjango.views.generic.base.TemplateResponseMixindjango.views.generic.edit.BaseDeleteViewdjango.views.generic.edit.DeletionMixindjango.views.generic.edit.FormMixindjango.views.generic.base.ContextMixindjango.views.generic.detail.BaseDetailViewdjango.views.generic.detail.SingleObjectMixindjango.views.generic.base.View属性
form_class¶Inherited from BaseDeleteView. The
form class that will be used to confirm the request. By default
django.forms.Form, resulting in an empty form that is always
valid.
By providing your own Form subclass, you can add additional
requirements, such as a confirmation checkbox, for example.
template_name_suffix¶GET リクエストに描画された DeleteView のページは、'_confirm_delete' の template_name_suffix を使います。 例えば、この属性をオブジェクト (例えば Author モデル) を作成するビューのために '_check_delete' に変更すると、 デフォルトの template_name は 'myapp/author_check_delete.html' となります。
Example myapp/views.py:
from django.urls import reverse_lazy
from django.views.generic.edit import DeleteView
from myapp.models import Author
class AuthorDeleteView(DeleteView):
model = Author
success_url = reverse_lazy('author-list')
例 myapp/author_confirm_delete.html:
<form method="post">{% csrf_token %}
<p>Are you sure you want to delete "{{ object }}"?</p>
{{ form }}
<input type="submit" value="Confirm">
</form>
django.views.generic.edit.BaseDeleteView¶A base view for deleting an object instance. It is not intended to be used
directly, but rather as a parent class of the
django.views.generic.edit.DeleteView.
継承元 (MRO)
このメソッドは、以下のビューからメソッドと属性を継承しています:
django.views.generic.edit.DeletionMixindjango.views.generic.edit.FormMixindjango.views.generic.detail.BaseDetailViewIn older versions, BaseDeleteView does not inherit from
FormMixin.
8月 03, 2022