0Pricing
Django Academy · Lekcja

Inlines i pola tylko do odczytu

Edytować powiązane rekordy bezpośrednio i chronić pola

Inlines i pola tylko do odczytu 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.

Edytuj powiązane wiersze razem

Czasami powiązane rekordy powinny znajdować się na tej samej stronie. Element inline pozwala edytować wiersze podrzędne bezpośrednio w formularzu edycji elementu nadrzędnego. 🧩

Dwa style elementów inline

Django oferuje dwa układy. TabularInline wyświetla wiersze w zwartej tabeli, a StackedInline układa każdy wiersz jako osobny blok.

Zdefiniuj element inline

Utwórz niewielką klasę będącą podklasą TabularInline i ustaw jej atrybut model na model podrzędny, który chcesz osadzić.

class CommentInline(admin.TabularInline):
    model = Comment

Podłącz do elementu nadrzędnego

Dodaj element inline do panelu administracyjnego elementu nadrzędnego. Opcja inlines informuje Django, aby renderowało te wiersze podrzędne wewnątrz formularza elementu nadrzędnego.

class PostAdmin(admin.ModelAdmin):
    inlines = [CommentInline]

Dodatkowe puste wiersze

Elementy inline wyświetlają puste wiersze, aby ułatwić dodawanie danych. Ustaw extra, aby określić liczbę pustych miejsc — często wystarczy jedno.

extra = 1

Wymaganie dotyczące FK

Elementy inline działają tylko wtedy, gdy model podrzędny ma ForeignKey do elementu nadrzędnego. To powiązanie pozwala Django rozpoznać, które wiersze należą do siebie.

Zabezpiecz pole

Niektóre wartości powinny być widoczne, ale nigdy nieedytowane ręcznie. Dodaj je do readonly_fields, a panel administracyjny wyświetli je jako zablokowane. 🔒

readonly_fields = ("created", "updated")

Automatyczne znaczniki czasu

Pola takie jak data ustawiana przez auto_now_add są wypełniane przez Django, a nie przez użytkowników. Oznaczenie ich jako readonly zapobiega mylącym zmianom, których nie można zapisać.

Wyświetl obliczoną wartość

readonly_fields może również zawierać nazwę metody, co pozwala wyświetlać obliczoną wartość, która nie ma rzeczywistej kolumny w bazie danych.

def word_count(self, obj):
    return len(obj.body.split())

readonly wewnątrz elementów inline

Elementy inline również obsługują readonly_fields. Użyj tej opcji, aby przejrzyście wyświetlać dane podrzędne, jednocześnie uniemożliwiając edycję wrażliwych kolumn.

Uprawnienia nadal obowiązują

Readonly dotyczy formularza, a nie bezpieczeństwa. Rzeczywisty dostęp określają uprawnienia użytkownika, dlatego w celu zapewnienia bezpiecznej edycji należy stosować oba mechanizmy.

Szybkie sprawdzenie

Co jest wymagane, aby model pojawił się jako element inline?

Podsumowanie

Osadziłeś powiązane wiersze za pomocą inlines i zablokowałeś wrażliwe wartości przy użyciu readonly_fields. Razem zapewniają one rozbudowaną, a jednocześnie bezpieczną edycję w panelu administracyjnym. ✅

Często zadawane pytania

Czy lekcja „Inlines i pola tylko do odczytu” jest bezpłatna?

Tak — pełny tekst „Inlines i pola tylko do odczytu” 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 „Inlines i pola tylko do odczytu”?

Edytować powiązane rekordy bezpośrednio i chronić 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 „Inlines i pola tylko do odczytu”?

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. createsuperuser i logowanie
  2. Rejestrowanie modeli za pomocą admin.site
  3. Dostosowywanie ModelAdmin
  4. Inlines i pola tylko do odczytu
← Powrót do Django Academy