Seite 1 von 1
ImageField in Verbindung mit File.width
Verfasst: Donnerstag 4. September 2008, 16:26
von ferix
Hallo wie setze ich bei einem ImageField das File.width Attribut ein?
Sowas wie bild1 = models.ImageField(upload_to='uploads/', File.width=300)
geht wohl eher nicht?
Muss ich die Save Methode irgendwie überschreiben?
Werde aus der Doku nicht schlau.
Verfasst: Donnerstag 4. September 2008, 19:02
von apollo13
width gibt's nicht

Lesen und überlegen was du eigentlich willst.
http://docs.djangoproject.com/en/dev/re ... imagefield
Verfasst: Freitag 5. September 2008, 10:18
von sma
Die Doku ist an dieser Stelle auch relativ schlecht. Insbesondere die Eigenart, bei den Parameternamen nochmal die Klasse voranzustellen, finde ich sehr verwirrend. Die alte Form mit einer netten Tabelle wahr übersichtlicher. Gemeint ist (ohne Gewähr) wohl dies:
Code: Alles auswählen
class Pics(models.Model):
pic = models.ImageField(upload_to='...', height_field='height', width_field='width')
width = models.IntegerField()
height = models.IntegerField()
Stefan
Verfasst: Freitag 5. September 2008, 11:03
von ferix
Was bewirken
height_field='height', width_field='width' ???
Nein gemeint war eigentlich diese Stelle:
In addition to the special attributes that are available for FileField, an ImageField also has File.height and File.width attributes. See Managing files.
Requires the Python Imaging Library.
Wenn ich das richtig verstehe, muss es damit doch möglich sein die Bilder mit dem Upload auf eine gewählte Größe zu skalieren???
Daher brauch man wohl die ImageLibrary.
Die Doku ist an dieser Stelle allerdings wirklich nicht gut, da man immer nur an eine andere Stelle weitergeleitet wird irgendwie.
Na auf jedenfall möchte ich die Bilder mit dem Upload auf eine bestimmt Größe bringen.
Man kann bei der Verwendung eines CMS nicht von jedem verlangen, dass er das Bild selbst mit einer Bildbearbeitungssoftware in der Größe anpassen kann und dann erst hochläd.
Momentan regele ich das Ganze noch sehr sehr unschön mit dem Attributen width und height vom html-Element img.
Also denke jetzt sollte klar sein was ich will

Verfasst: Freitag 5. September 2008, 11:11
von sma
Nein, damit kannst du keine Bilder skalieren (denke ich), sondern die Höhe und Breite eines Bildes in deinem Modell abspeichern. Praktisch, wenn du das Bild wieder anzeigen willst, weil dann das <img>-Element diese Angaben enthalten sollte, damit der Browser schneller das Layout erstellen kann.
Stefan
Verfasst: Freitag 5. September 2008, 11:19
von ferix
Wäre dann praktisch auch nichts anderes als das was ich gemacht habe.
Nur, dass ich das im Template gemacht habe und es so im Model gemacht wird?
Bin mir da aber nicht so sicher. Wieso geht es dann um File-Managing?
Dann muss doch in irgendeiner Art auch was mit der Datei gemacht werden!?!?
Verfasst: Freitag 5. September 2008, 11:47
von sma
Das ganze dient doch zum Hochladen von Bildern. Die Bilder werden daher auf dem Server gespeichert. Das ist das "File-Managing".
Stefan
Verfasst: Freitag 5. September 2008, 12:02
von ferix
Ja aber das was du meinst erledigt doch das height_field='height', width_field='width' oder nicht?
Verfasst: Freitag 5. September 2008, 16:49
von apollo13
ferix hat geschrieben:Wäre dann praktisch auch nichts anderes als das was ich gemacht habe.
Nur, dass ich das im Template gemacht habe und es so im Model gemacht wird?
Jein, so kannst du zb Breite und Höhe angeben ohne das File zu laden, da Django das eben in height_field/width_field schreibt....
Bin mir da aber nicht so sicher. Wieso geht es dann um File-Managing?
Dann muss doch in irgendeiner Art auch was mit der Datei gemacht werden!?!?
Wann und wo? Sie wird nur hochgeladen und gespeichert, bearbeitet wird sie nicht.
Verfasst: Samstag 6. September 2008, 20:41
von ferix
http://docs.djangoproject.com/en/dev/re ... imagefield
Wie gesagt es geht um folgende Textstelle:
In addition to the special attributes that are available for FileField, an ImageField also has File.height and File.width attributes. See Managing files.
Requires the Python Imaging Library.
Das hört sich für mich einfach so an, als könnte man damit die Größe des Bildes verändern. Naja ich muss einfach nochmal schauen.
Verfasst: Samstag 6. September 2008, 21:04
von BlackJack
Das kann aber auch einfach nur bedeuten, dass PIL benötigt wird um Höhe und Breite aus der Bilddatei *auszulesen*.
Verfasst: Samstag 6. September 2008, 21:11
von ferix
Das könnte natürlich auch sein ^^
Verfasst: Sonntag 7. September 2008, 16:31
von apollo13
ferix hat geschrieben:Das könnte natürlich auch sein ^^
Kann nicht sein, ist so. Und nein, das Attribut hat für mich noch nie angedeutet, dass ich das Bild damit skalieren könnte, wäre auch zu komische.