Narzędzia użytkownika

Narzędzia witryny


pl:python:views

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
pl:python:views [2023/12/07 18:40] – [MultipleObjectMixin] sindappl:python:views [2023/12/07 19:36] (aktualna) – [ProcessFormView] sindap
Linia 1010: Linia 1010:
 2. **MultipleObjectMixin:** 2. **MultipleObjectMixin:**
   * ''ListView'': Wyświetla listę obiektów.   * ''ListView'': Wyświetla listę obiektów.
-  * Inne widoki, które operują na listach obiektów.+  * Inne widoki, które operują na listach obiektów takie jak:''DateListView'', ''ArchiveIndexView'', ''YearArchiveView'', ''MonthArchiveView'', ''WeekArchiveView'', ''DayArchiveView'', ''TodayArchiveView''
  
 Przykład z ''ListView'': Przykład z ''ListView'':
Linia 1062: Linia 1062:
 ==== ModelFormMixin ==== ==== ModelFormMixin ====
  
 +W Django, klasa ''ModelFormMixin'' jest używana w połączeniu z widokami, które obsługują formularze oparte na modelu. Ten mixin dostarcza funkcjonalności związanej z obsługą formularzy w kontekście operacji na modelu. Najczęściej stosuje się go w połączeniu z widokami takimi jak ''CreateView'' i ''UpdateView'', które są odpowiedzialne za tworzenie i aktualizację obiektów modelu.
 +
 +Oto przykład użycia ''ModelFormMixin'' w połączeniu z ''CreateView'':
 +
 +<code python>
 +from django.views.generic.edit import CreateView
 +from django.urls import reverse_lazy
 +from .models import YourModel
 +from .forms import YourModelForm  # Załóżmy, że to jest formularz oparty na modelu
 +
 +class YourCreateView(ModelFormMixin, CreateView):
 +    model = YourModel
 +    form_class = YourModelForm
 +    template_name = 'your_template.html'
 +    success_url = reverse_lazy('your-success-url')
 +
 +    def form_valid(self, form):
 +        # Dodatkowe działania po poprawnej walidacji formularza
 +        return super().form_valid(form)
 +</code>
 +
 +W powyższym przykładzie ''YourCreateView'' jest widokiem, który obsługuje tworzenie nowego obiektu modelu za pomocą formularza (''YourModelForm''). ''ModelFormMixin'' dostarcza funkcji związanych z obsługą formularza i jego zapisywaniem w kontekście operacji na modelu.
 +
 +Podobnie można użyć ''ModelFormMixin'' w połączeniu z ''UpdateView'' do aktualizacji istniejących obiektów modelu. W zależności od przypadku użycia, ''ModelFormMixin'' pomaga w obszarze zapisywania, wyświetlania formularza, walidacji i innych zadań związanych z formularzem na podstawie modelu.
 ==== ProcessFormView ==== ==== ProcessFormView ====
 +
 +W Django, klasa ''ProcessFormView'' to klasa bazowa, która dostarcza funkcjonalności związane z przetwarzaniem formularza w widokach opartych na klasie. Jest to często stosowane wewnątrz innych widoków, takich jak ''FormView'', ''CreateView'', ''UpdateView'', itp., które obsługują formularze.
 +
 +''ProcessFormView'' jest odpowiedzialna za obsługę procesu przetwarzania formularza. W kontekście innych widoków, te zadania są zazwyczaj realizowane automatycznie, a deweloperzy rzadko korzystają bezpośrednio z ''ProcessFormView''. Niemniej jednak, dla bardziej zaawansowanych przypadków użycia, deweloperzy mogą dziedziczyć bezpośrednio z tej klasy, aby dostosować zachowanie przetwarzania formularza w widoku.
 +
 +Oto przykład użycia ''ProcessFormView'':
 +
 +<code python>
 +from django.views.generic.edit import ProcessFormView
 +from django.http import HttpResponseRedirect
 +from django.urls import reverse
 +from .forms import YourForm
 +
 +class YourCustomFormView(ProcessFormView):
 +    form_class = YourForm
 +    template_name = 'your_template.html'
 +
 +    def form_valid(self, form):
 +        # Dodatkowe operacje po poprawnej walidacji formularza
 +        # Możesz dostosować to do swoich potrzeb, na przykład zapisywanie dodatkowych danych
 +        return HttpResponseRedirect(reverse('success-url'))
 +</code>
 +
 +W tym przykładzie ''YourCustomFormView'' dziedziczy z ''ProcessFormView'' i definiuje formularz (''YourForm''). Metoda ''form_valid'' jest wywoływana, gdy formularz jest poprawnie zwalidowany. Deweloper może dostosować tę metodę, aby wykonać dodatkowe operacje po poprawnej walidacji formularza.
 +
 +W praktyce, jednak najczęściej korzystasz z bardziej specjalizowanych klas widoków, które korzystają z ''ProcessFormView'' wewnętrznie, takich jak ''FormView'', ''CreateView'', ''UpdateView'', itp.
  
 ==== DeletionMixin ==== ==== DeletionMixin ====
pl/python/views.1701970852.txt.gz · ostatnio zmienione: 2023/12/07 18:40 przez sindap

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki