Mein Blog...
↑ Firefox: Cookies Verwalten... #
Vor 1 Jahr, 10 Monate veröffentlicht, durch jens.Hab ein neues Firefox Add-On gefunden: "Cookie Button in the status bar":
Damit sieht man unten in der Statusleiste welche Einstellung für die aktuelle Domain gilt und kann diese einfach ändern. Sehr gut!
Firefox hab ich so eingestellt: Unter Einstellungen/Datenschutz/Cookies:
- "Cookies von Drittanbietern akzeptieren" is an
- Behalte, bis: "Firefox geschlossen wird"
In den "Ausnahmen..." werden dann die Domains eingefügt, deren Cookies beim beenden
nicht gelöscht werden.
Es funktionier also wie folgt: Jede Seite darf grundsätzlich Cookies setzten (ansonsten funktionieren viele Seiten nicht richtig)... Nach dem Firefox beendet wird, werden aber alle Cookies gelöscht, bis auf die paar, die man in der Ausnahme aufnimmt. Somit ist man wieder "Anonym" für die meisten Seiten.
Ohne Addon mußte man allerdings jede Domain per Hand in die Ausname Liste eintragen. Mit dem cookiebutton Addon kann man das sehr bequem unten in der Statusleiste machen, wenn man "Cookies akzeptieren von domain.tld" auswählt.
(Last update: 20. Nov. 2009, 11:01 by jens.)
↑ django FileField mit einer Dateiendungs whitelist... #
Vor 2 Jahre veröffentlicht, durch jens.Ich brauchte eine möglichkeit, das bei einem Upload nur bestimmte Dateitypen zugelassen werden sollten. Eine Überprüfung dafür gibt es IMHO in django nicht. Mit einem eigenen FileField geht das recht einfach, man kann eine Liste von erlaubten Dateiendungen angeben und wenn der Upload nicht passt, wird eine normaler forms.ValidationError geworfen. Hier der Sourcecode mit einem kleinen DocTest:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | import os from django import forms class ExtFileField(forms.FileField): """ Same as forms.FileField, but you can specify a file extension whitelist. >>> from django.core.files.uploadedfile import SimpleUploadedFile >>> >>> t = ExtFileField(ext_whitelist=(".pdf", ".txt")) >>> >>> t.clean(SimpleUploadedFile('filename.pdf', 'Some File Content')) >>> t.clean(SimpleUploadedFile('filename.txt', 'Some File Content')) >>> >>> t.clean(SimpleUploadedFile('filename.exe', 'Some File Content')) Traceback (most recent call last): ... ValidationError: [u'Not allowed filetype!'] """ def __init__(self, *args, **kwargs): ext_whitelist = kwargs.pop("ext_whitelist") self.ext_whitelist = [i.lower() for i in ext_whitelist] super(ExtFileField, self).__init__(*args, **kwargs) def clean(self, *args, **kwargs): data = super(ExtFileField, self).clean(*args, **kwargs) filename = data.name ext = os.path.splitext(filename)[1] ext = ext.lower() if ext not in self.ext_whitelist: raise forms.ValidationError("Not allowed filetype!") #------------------------------------------------------------------------- if __name__ == "__main__": import doctest, datetime doctest.testmod() |
Das ganze findet man auch hier: http://www.djangosnippets.org/snippets/977/
(Last update: 20. Nov. 2009, 11:01 by jens.)