Login

Tag "FileField"

Snippet List

Automatic Folder FileField

Your MEDIA_ROOT directories are a mess? FileField save on "upload_to" directories with old/strange/temporary names decided "on the fly" and never fixed down? SmartFolderFileField is the solution! "upload_to" directory depends only on: app, model and field names. No mess, no ambiguities Obviously, in case you need a real callable for a dynamic directory name: please use it! and leave apart FixedFolderFileField Sample: from django.db import models from utilities_app.models import SmartFolderFileField class SampleModel(models.Model): sample_char_field = models.CharField(max_length=50) sample_file_field = SmartFolderFileField()

  • upload_to
  • FileField
Read More

File Mimetype Validator (Using python-magic)

This validator works well with FileField form fields and can validate that an uploaded file has an acceptable mimetype. Place this snippet in your app's `validators.py`. Requirements: This snippet uses [python-magic](https://github.com/ahupp/python-magic). To install: pip install python-magic Usage (in forms.py): from validators import MimetypeValidator class MyForm(forms.Form): file = forms.FileField( allow_empty_file=False, validators=[MimetypeValidator('application/pdf')], help_text="Upload a PDF file" )

  • validation
  • upload
  • magic
  • mimetype
  • FileField
Read More

Human readable file names decorator

This is extremely simple decorator to add possibility to upload files with name specific in some object field. For example image with same name as object slug. Sample **model**: class Test(models.Model): image = models.ImageField(\ upload_to=upload_to_dest(path='pics/', \ human_readable_field='hrname')) hrname = models.CharField( \ max_length=128, \ blank=True, default='') Sample **form** for admin: FNAME_EXP = re.compile('^[A-Za-z0-9\-\_]+$') class TestAdminForm(forms.ModelForm): hrname = forms.RegexField( label="Human Readable File Name", \ regex=FNAME_EXP, \ help_text="""Allowed only latin alphabet (upper and lower cases), underscore and minus characters. PLEASE, DO NOT INCLUDE EXTENSION OF THE FILE. Sample: test-this-file""", \ required=False) class Meta: model = Test Sample *admin.py* for *Test* model: class TestAdmin(admin.ModelAdmin): form = TestAdminForm admin.site.register(Test, TesetAdmin)

  • django
  • ImageField
  • file uploads
  • file name
  • FileField
Read More

3 snippets posted so far.