Für die Verwaltung der Dateien hat Django einen speziellen Feldtyp, der es uns ermöglicht, auf verschiedene Methoden zuzugreifen, die die Handhabung der Dateien in unserer Anwendung erleichtern, wenn sie im Modell deklariert sind.
Feld “FileField”
Wie bereits erwähnt, haben wir einen bestimmten Feldtyp , mit dem Django die Dateiverwaltung durchführt. Dieser Feldtyp ist FileField . Dieses Feld verfügt über bestimmte Methoden zum Speichern der Dateien und zu ihrer Verarbeitung. Wir haben einen Feldtyp , der einen großen Teil davon erbt FileField- Funktionalität, dies ist das ImageField , das, wie der Name schon sagt, speziell für die Bildverarbeitung ist.
Methoden
Als nächstes beschreiben wir auf einfache und detaillierte Weise einige der wichtigsten Methoden, die wir im Feldtyp FileField haben .
get_directory_name (self)
Diese Methode gibt einfach den relativen Pfad zurück, der in der Datenbank zusammen mit dem Namen der Datei gespeichert wird. Standardmäßig überprüft diese Methode das upload_to- Attribut des Feldes, um das Verzeichnis zu bestimmen. Selbst Unterklassen berücksichtigen dieses Verhalten, wenn sie jedoch eine Unterklasse erstellen Wir können bestimmen, wie das Attribut verwendet wird
get_filename (self, filename)
Diese Methode funktioniert ähnlich wie die vorherige, nur der Fokus ändert sich vom Pfad zum Dateinamen. Sie empfängt den Namen der Datei und wandelt sie in die Form um, in der sie in der Datenbank gespeichert wird, wenn Anpassungen erforderlich sind Um den Namen der Datei in einer bestimmten Struktur zu ändern oder eine bestimmte Dateierweiterung zu generieren, müssen wir beim Erstellen einer Unterklasse nach dieser Methode suchen, um die Änderung vorzunehmen.
save_form_data (self, instance, data)
Dies ist eine nützliche Methode, die für die Formulare verwendet wird. Wir können sie jedoch als Verknüpfung zum Speichern der Dateien verwenden, da sie zusätzlich zu den Dateiinformationen die Instanz des Modells akzeptiert. Auf diese Weise extrahiert die Methode die erforderlichen Informationen es erfordert den Upload der Datei.
delete_file (self, instance, sender)
Mit dieser Methode können Sie die zuvor hochgeladene Datei löschen. Dies scheint zwar eine einfache Möglichkeit zu sein, ist jedoch aufgrund des erwarteten Absenderarguments als Parameter ein etwas komplexerer Mechanismus, der nicht für den einzelnen Aufruf vorgesehen ist.
Sehen wir uns ein Bild davon an, wie diese Methode funktioniert, um uns eine klarere Vorstellung davon zu geben, wovon wir sprechen:
Damit haben wir dieses Tutorial beendet, dank dessen wir eine klarere Vorstellung davon haben, wie wir die Dateien im Django- Modell dank des FileField- Felds und seiner Methoden verwalten können.