Django 2.1 - Generic editing views
सामान्य संपादन विचार

सामान्य संपादन विचार
इस पृष्ठ पर निम्नलिखित विचार वर्णित हैं और संपादन सामग्री के लिए एक आधार प्रदान करते हैं:
-
django.views.generic.edit.FormView
-
django.views.generic.edit.CreateView
-
django.views.generic.edit.UpdateView
-
django.views.generic.edit.DeleteView
ध्यान दें
इस पृष्ठ के कुछ उदाहरण यह मानते हैं कि एक
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
-
class django.views.generic.edit.FormView
-
एक दृश्य जो एक फॉर्म प्रदर्शित करता है। त्रुटि पर, सत्यापन त्रुटियों के साथ प्रपत्र को फिर से परिभाषित करता है; सफलता पर, एक नए URL पर पुनर्निर्देशित करता है।
पूर्वज (MRO)
यह दृश्य निम्नलिखित विचारों के तरीकों और विशेषताओं को विरासत में देता है:
-
django.views.generic.base.TemplateResponseMixin
-
django.views.generic.edit.BaseFormView
-
django.views.generic.edit.FormMixin
-
django.views.generic.edit.ProcessFormView
-
django.views.generic.base.View
उदाहरण myapp / form.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
उदाहरण myapp / views.py
from myapp.forms import ContactForm from django.views.generic.edit import FormView class ContactView(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 / contact.html :
<form method="post">{% csrf_token %} {{ form.as_p }} <input type="submit" value="Send message"> </form>
-
CreateView
-
class django.views.generic.edit.CreateView
-
ऐसा दृश्य जो ऑब्जेक्ट बनाने के लिए फ़ॉर्म प्रदर्शित करता है, सत्यापन त्रुटियों के साथ फ़ॉर्म को फिर से परिभाषित करता है (यदि कोई हो) और ऑब्जेक्ट को सहेज रहा है।
पूर्वज (MRO)
यह दृश्य निम्नलिखित विचारों के तरीकों और विशेषताओं को विरासत में देता है:
-
django.views.generic.detail.SingleObjectTemplateResponseMixin
-
django.views.generic.base.TemplateResponseMixin
-
django.views.generic.edit.BaseCreateView
-
django.views.generic.edit.ModelFormMixin
-
django.views.generic.edit.FormMixin
-
django.views.generic.detail.SingleObjectMixin
-
django.views.generic.edit.ProcessFormView
-
django.views.generic.base.View
गुण
-
template_name_suffix
-
GET
अनुरोध के लिए बनाया गयाCreateView
पृष्ठ'_form'
template_name_suffix
'_form'
का उपयोग करता है। उदाहरण के लिए,Author
मॉडल के लिए ऑब्जेक्ट बनाने वाले दृश्य के लिए इस विशेषता को'_create_form'
बदलने से डिफ़ॉल्टtemplate_name
'myapp/author_create_form.html'
।
-
object
-
CreateView
का उपयोगCreateView
आपके पासself.object
तक पहुंचself.object
, जो कि ऑब्जेक्ट बनाया जा रहा है। यदि वस्तु अभी तक नहीं बनाई गई है, तो मूल्यNone
होगा।
उदाहरण myapp / views.py
from django.views.generic.edit import CreateView from myapp.models import Author class AuthorCreate(CreateView): model = Author fields = ['name']
उदाहरण myapp / author_form.html :
<form method="post">{% csrf_token %} {{ form.as_p }} <input type="submit" value="Save"> </form>
-
UpdateView
-
class django.views.generic.edit.UpdateView
-
एक दृश्य जो किसी मौजूदा ऑब्जेक्ट को संपादित करने के लिए एक फॉर्म प्रदर्शित करता है, फॉर्म को सत्यापन त्रुटियों (यदि कोई हो) के साथ फिर से परिभाषित करता है और ऑब्जेक्ट में परिवर्तन को सहेजता है। यह ऑब्जेक्ट के मॉडल वर्ग से स्वचालित रूप से उत्पन्न एक फॉर्म का उपयोग करता है (जब तक कि फॉर्म क्लास मैन्युअल रूप से निर्दिष्ट न हो)।
पूर्वज (MRO)
यह दृश्य निम्नलिखित विचारों के तरीकों और विशेषताओं को विरासत में देता है:
-
django.views.generic.detail.SingleObjectTemplateResponseMixin
-
django.views.generic.base.TemplateResponseMixin
-
django.views.generic.edit.BaseUpdateView
-
django.views.generic.edit.ModelFormMixin
-
django.views.generic.edit.FormMixin
-
django.views.generic.detail.SingleObjectMixin
-
django.views.generic.edit.ProcessFormView
-
django.views.generic.base.View
गुण
-
template_name_suffix
-
GET
अनुरोध के लिए प्रदर्शितUpdateView
पृष्ठ'_form'
template_name_suffix
'_form'
का उपयोग करता है। उदाहरण के लिए, इस विशेषता को'_update_form'
लिए'_update_form'
देखने के लिए उदाहरण के लिए ऑब्जेक्ट को अद्यतन करने के लिएAuthor
मॉडल डिफ़ॉल्टtemplate_name
का कारण'myapp/author_update_form.html'
।
-
object
-
UpdateView
का उपयोग करतेUpdateView
आपके पासUpdateView
तक पहुंचself.object
, जो कि अद्यतन की जा रही वस्तु है।
उदाहरण myapp / views.py
from django.views.generic.edit import UpdateView from myapp.models import Author class AuthorUpdate(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>
-
DeleteView
-
class django.views.generic.edit.DeleteView
-
एक दृश्य जो एक पुष्टि पृष्ठ प्रदर्शित करता है और एक मौजूदा वस्तु को हटाता है। दी गई वस्तु केवल तभी हटा दी जाएगी जब अनुरोध विधि
POST
। यदि यह दृश्यGET
माध्यम सेGET
, तो यह एक पुष्टिकरण पृष्ठ प्रदर्शित करेगा जिसमें एक ही URL में POST का एक रूप होना चाहिए।पूर्वज (MRO)
यह दृश्य निम्नलिखित विचारों के तरीकों और विशेषताओं को विरासत में देता है:
-
django.views.generic.detail.SingleObjectTemplateResponseMixin
-
django.views.generic.base.TemplateResponseMixin
-
django.views.generic.edit.BaseDeleteView
-
django.views.generic.edit.DeletionMixin
-
django.views.generic.detail.BaseDetailView
-
django.views.generic.detail.SingleObjectMixin
-
django.views.generic.base.View
गुण
-
template_name_suffix
-
GET
अनुरोध के लिए प्रदर्शितDeleteView
पृष्ठ'_confirm_delete'
template_name_suffix
'_confirm_delete'
का उपयोग करता है। उदाहरण के लिए, इस विशेषता को उदाहरण के लिए ऑब्जेक्ट हटाने वाले दृश्य के लिए'_check_delete'
बदलने सेAuthor
मॉडल डिफ़ॉल्टtemplate_name
'myapp/author_check_delete.html'
।
उदाहरण myapp / views.py
from django.urls import reverse_lazy from django.views.generic.edit import DeleteView from myapp.models import Author class AuthorDelete(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> <input type="submit" value="Confirm"> </form>
-