Django Academy · Lekcja

Widgets, Labels i Help Text

Kontrolowanie sposobu renderowania każdego pola

Lekcja 4 z 413 kroki

Widgets, Labels i Help Text to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Django Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Django Academy zawiera 4 lekcji w sumie.

Dopracowywanie formularza

Działający ModelForm to świetna rzecz, ale automatycznie generowane pola wyglądają dość zwyczajnie. Można dopracować wygląd i sposób działania każdego pola za pomocą widgets, etykiet i tekstu pomocniczego. 🎨

Czym jest widget

Widget to kontrolka HTML renderowana dla pola, na przykład pole tekstowe, textarea lub selektor daty. Można go zamienić, aby zmienić wyświetlane pole.

Przesłanianie widgetów w Meta

Ustaw słownik widgets w Meta, aby przypisać nazwie pola inną kontrolkę. Tutaj pole body staje się obszernym elementem textarea.

class Meta:
    model = Post
    fields = ["body"]
    widgets = {"body": forms.Textarea}

Przekazywanie atrybutów widgetu

Utwórz instancję widgetu, aby przekazać atrybuty HTML attrs, takie jak liczba wierszy lub klasa CSS. W ten sposób łączy się formularze ze stylami.

widgets = {
    "body": forms.Textarea(attrs={"rows": 4})
}

Dodawanie klasy CSS

Ten sam słownik attrs dodaje klasę, dzięki której arkusz stylów może wskazać pole. Świetnie sprawdza się to w Bootstrapie lub z własnymi klasami narzędziowymi.

forms.TextInput(attrs={"class": "form-control"})

Ustawianie tekstu zastępczego

placeholder podpowiada, co wpisać, zanim użytkownik kliknie pole. Dodaj go przez attrs, aby delikatnie pokierować użytkownikiem.

forms.TextInput(attrs={"placeholder": "Enter a title"})

Niestandardowe etykiety

Django tworzy etykiety pól na podstawie ich nazw, ale można je przesłonić. Słownik labels w Meta pozwala nadać dowolnemu polu przyjaźniejszy opis.

labels = {"body": "Post content"}

Dlaczego etykiety mają znaczenie

Przejrzyste etykiety sprawiają, że formularz jest czytelny i dostępny. Pole o nazwie pub_date jest dla użytkowników znacznie bardziej zrozumiałe, gdy wyświetla się jako „Data publikacji”.

Dodawanie tekstu pomocniczego

Słownik help_texts wyświetla krótką wskazówkę pod polem. Proszę używać go do wyjaśniania ograniczeń lub formatu bez przeładowywania etykiety.

help_texts = {"title": "Keep it under 60 characters."}

Niestandardowe komunikaty błędów

Można również zmienić treść błędów walidacji za pomocą słownika error_messages, aby dopasować ją do stylu aplikacji.

error_messages = {
    "title": {"required": "Please add a title."}
}

Składanie wszystkiego w całość

Wszystkie te ustawienia znajdują się obok siebie w Meta. Połączenie widgetów, etykiet i help_texts pozwala uzyskać czysty formularz zgodny z identyfikacją aplikacji przy niemal zerowej ilości dodatkowego kodu.

class Meta:
    model = Post
    fields = ["title", "body"]
    labels = {"body": "Content"}

Szybkie sprawdzenie

Który słownik Meta zmienia kontrolkę HTML renderowaną dla pola?

Podsumowanie: dostosowywanie pól

Udało się! W Meta można ustawić widgets, etykiety, help_texts i error_messages, aby dowolny ModelForm wyglądał i był opisany dokładnie tak, jak Państwo chcą. 🌟

Bezpłatny start

Ucz się Python dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Widgets, Labels i Help Text” jest bezpłatna?

Tak — pełny tekst „Widgets, Labels i Help Text” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Django Academy, przejdź na CoddyKit PRO. Kurs Django Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Widgets, Labels i Help Text”?

Kontrolowanie sposobu renderowania każdego pola Ćwiczysz Django Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Django Academy?

Nie wymagamy żadnego doświadczenia. Django Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Widgets, Labels i Help Text”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Django Academy?

Tak. Każda lekcja Django Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Deklarowanie ModelForm i Meta.fields
  2. form.save() i commit=False
  3. Własna walidacja za pomocą metod clean
  4. Widgets, Labels i Help Text
← Powrót do Django Academy