Django 2.1 - Generic editing views

सामान्य संपादन विचार




django

सामान्य संपादन विचार

इस पृष्ठ पर निम्नलिखित विचार वर्णित हैं और संपादन सामग्री के लिए एक आधार प्रदान करते हैं:

ध्यान दें

इस पृष्ठ के कुछ उदाहरण यह मानते हैं कि एक 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)

यह दृश्य निम्नलिखित विचारों के तरीकों और विशेषताओं को विरासत में देता है:

उदाहरण 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)

यह दृश्य निम्नलिखित विचारों के तरीकों और विशेषताओं को विरासत में देता है:

गुण

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)

यह दृश्य निम्नलिखित विचारों के तरीकों और विशेषताओं को विरासत में देता है:

गुण

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)

यह दृश्य निम्नलिखित विचारों के तरीकों और विशेषताओं को विरासत में देता है:

गुण

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>