Modulen django.core.files och dess undermoduler innehåller inbyggda klasser för grundläggande filhantering i Django.
The File class is a thin wrapper around a Python
file object with some Django-specific additions.
Internally, Django uses this class when it needs to represent a file.
File-objekt har följande attribut och metoder:
Namnet på filen inklusive den relativa sökvägen från MEDIA_ROOT.
The underlying file object that this class wraps.
Var försiktig med detta attribut i underklasser.
Some subclasses of File, including
ContentFile and
FieldFile, may replace this
attribute with an object other than a Python file
object. In these cases, this attribute may itself be a
File subclass (and not necessarily the same subclass).
Whenever possible, use the attributes and methods of the subclass
itself rather than the those of the subclass’s file attribute.
Läs-/skrivläge för filen.
Open or reopen the file (which also does File.seek(0)).
The mode argument allows the same values
as Python’s built-in open(). *args and **kwargs
are passed after mode to Python’s built-in open().
När en fil öppnas på nytt kommer mode att åsidosätta det läge som filen ursprungligen öppnades med; None innebär att filen öppnas på nytt med det ursprungliga läget.
Den kan användas som en kontexthanterare, t.ex. with file.open() as f:.
Iterera över filen och få fram ”chunks” av en viss storlek. chunk_size är som standard 64 KB.
Detta är särskilt användbart med mycket stora filer eftersom det gör att de kan strömmas från disken och undviker att lagra hela filen i minnet.
Returnerar True om filen är tillräckligt stor för att kräva flera bitar för att få tillgång till allt innehåll med en viss chunk_size.
Förutom de listade metoderna, File följande attribut och metoder för sitt file-objekt: encoding, fileno, flush, isatty, newlines, read, readinto, readline, readlines, seek, tell, truncate, write, writelines, readable(), writable() och seekable().
Klassen ContentFile ärver från File, men till skillnad från File arbetar den med stränginnehåll (bytes stöds också), snarare än en faktisk fil. Till exempel:
from django.core.files.base import ContentFile
f1 = ContentFile("esta frase está en español")
f2 = ContentFile(b"these are bytes")
Django tillhandahåller en inbyggd klass specifikt för bilder. django.core.files.images.ImageFile ärver alla attribut och metoder från File, och tillhandahåller dessutom följande:
Alla File som är associerade med ett objekt (som med Car.photo, nedan) kommer också att ha ett par extra metoder:
Sparar en ny fil med det filnamn och innehåll som anges. Detta kommer inte att ersätta den befintliga filen, utan skapa en ny fil och uppdatera objektet så att det pekar på den. Om save är True kommer modellens metod save() att anropas när filen har sparats. Det vill säga dessa två rader:
>>> car.photo.save("myphoto.jpg", content, save=False)
>>> car.save()
är likvärdiga med:
>>> car.photo.save("myphoto.jpg", content, save=True)
Observera att argumentet content måste vara en instans av antingen File eller av en underklass av File, t.ex. ContentFile.
Tar bort filen från modellinstansen och raderar den underliggande filen. Om save är True kommer modellens metod save() att anropas när filen har raderats.
dec. 03, 2025