|
Revision 25, 0.8 KB
(checked in by nazar, 4 years ago)
|
|
initial commit for image field and file field
|
| Line | |
|---|
| 1 | # -*- encoding: utf-8 -*- |
|---|
| 2 | |
|---|
| 3 | from django.db.models.fields.files import FileField |
|---|
| 4 | |
|---|
| 5 | from plesonet_filefield.forms import DeleteFileFormField |
|---|
| 6 | |
|---|
| 7 | import os |
|---|
| 8 | |
|---|
| 9 | class ImrpovedFileField(FileField): |
|---|
| 10 | |
|---|
| 11 | def save_form_data(self, instance, data): |
|---|
| 12 | ''' |
|---|
| 13 | Overwrite save_form_data to delete images if "delete" checkbox |
|---|
| 14 | is selected |
|---|
| 15 | ''' |
|---|
| 16 | if data == '__deleted__' and self.blank: |
|---|
| 17 | filename = getattr(instance, self.name).path |
|---|
| 18 | if os.path.exists(filename): |
|---|
| 19 | os.remove(filename) |
|---|
| 20 | setattr(instance, self.name, None) |
|---|
| 21 | else: |
|---|
| 22 | super(ImrpovedFileField, self).save_form_data(instance, data) |
|---|
| 23 | |
|---|
| 24 | def formfield(self, **kwargs): |
|---|
| 25 | kwargs['form_class'] = DeleteFileFormField |
|---|
| 26 | return super(ImrpovedFileField, self).formfield(**kwargs) |
|---|