Inlines og skrivebeskyttede felt
Rediger relaterte rader innebygd og beskytt felt
Inlines og skrivebeskyttede felt er en gratis leksjon i Django Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Django Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Django Academy inneholder totalt 4 leksjoner.
Rediger relaterte rader sammen
Noen ganger hører relaterte poster hjemme på samme side. En inline lar deg redigere underordnede rader direkte i redigeringsskjemaet til den overordnede posten. 🧩
To inline-stiler
Django tilbyr to oppsett. En TabularInline viser radene i en kompakt tabell, mens StackedInline viser hver rad som sin egen blokk.
Definer en inline
Opprett en liten klasse som arver fra TabularInline, og la model-attributtet peke på undermodellen du vil bygge inn.
class CommentInline(admin.TabularInline):
model = CommentKoble til den overordnede modellen
List opp inlinen i admin for den overordnede modellen. Alternativet inlines forteller Django at de underordnede radene skal gjengis inne i hovedskjemaet.
class PostAdmin(admin.ModelAdmin):
inlines = [CommentInline]Ekstra tomme rader
Inlines viser tomme rader for rask registrering. Sett extra for å styre hvor mange tomme plasser som vises – ofte holder det med én.
extra = 1FK-kravet
Inlines fungerer bare når den underordnede modellen har en ForeignKey til den overordnede. Denne koblingen viser Django hvilke rader som hører sammen.
Beskytt et felt
Noen verdier skal være synlige, men aldri redigeres manuelt. Legg dem i readonly_fields, så viser admin dem som låste. 🔒
readonly_fields = ("created", "updated")Automatiske tidsstempler
Felter som en auto_now_add-dato settes av Django, ikke av brukere. Hvis du merker dem som readonly, unngår du forvirrende endringer som ikke kan lagres.
Vis en beregnet verdi
readonly_fields kan også inneholde navnet på en method, slik at du kan vise en beregnet verdi som ikke har noen faktisk databasekolonne.
def word_count(self, obj):
return len(obj.body.split())Readonly i inlines
Inlines støtter også readonly_fields. Bruk det til å vise underordnede data tydelig, samtidig som sensitive kolonner ikke kan redigeres.
Tillatelser gjelder fortsatt
Readonly handler om skjemaet, ikke sikkerhet. Den faktiske tilgangen styres av brukerens permissions, så kombiner begge deler for trygg redigering.
Hurtigsjekk
Hva kreves for at en modell skal vises som en inline?
Oppsummering
Du bygde inn relaterte rader med inlines og låste sensitive verdier med readonly_fields. Sammen gjør de admin-redigering omfattende, men trygg. ✅
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Inlines og skrivebeskyttede felt» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Django Academy, inkludert «Inlines og skrivebeskyttede felt», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Django Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Inlines og skrivebeskyttede felt»?
Rediger relaterte rader innebygd og beskytt felt Du øver på Django Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Django Academy?
Ingen tidligere erfaring er nødvendig. Django Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Inlines og skrivebeskyttede felt»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Django Academy-leksjonen?
Ja. Alle Django Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- createsuperuser og innlogging
- Registrer modeller med admin.site
- Tilpass ModelAdmin
- Inlines og skrivebeskyttede felt