https://github.com/pizzapanther/django-crop-override-field
Field for predefined crops that when empty, falls back to original
https://github.com/pizzapanther/django-crop-override-field
Last synced: about 1 month ago
JSON representation
Field for predefined crops that when empty, falls back to original
- Host: GitHub
- URL: https://github.com/pizzapanther/django-crop-override-field
- Owner: pizzapanther
- Created: 2012-03-21T21:22:15.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2014-10-15T13:51:16.000Z (over 10 years ago)
- Last Synced: 2025-03-30T19:35:06.744Z (2 months ago)
- Language: JavaScript
- Homepage:
- Size: 412 KB
- Stars: 5
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Django Crop Override Field provides an additional Django database field for
helping with defining crops.### Use Case: ###
You want users to upload an image and on the frontend of your site you display
the image as a square and landscape aspect ratio thumbnails. You would like
these thumbnails to be generated automatically from the original. However,
sometimes your auto-cropper doesn't get it right and you would like to provide
a manual override.### What Django Override Crop Field does: ###
* Gives you an optional image field to store your crop in.
When not used it falls back to providing the original image to be resized.* An admin widget to make quick crops right in the admin interface.
### Usage: ###
Add 'crop_override' to INSTALLED_APPS in settings.py
#### models.py ####
```python
from django.db import modelsfrom crop_override import CropOverride, OriginalImage
class Image (models.Model):
alt_tag = models.CharField('Alt Tag', max_length=75)
full_size = OriginalImage('Full Size Original', upload_to='some/dir')
square_crop = CropOverride('Square Crop, 1x1 Ratio', upload_to='some/dir', original='full_size', aspect='1x1')
landscape_crop = CropOverride('Landscape Crop, 4x3 Ratio', upload_to='some/dir', original='full_size', aspect='4x3')
portrait_crop = CropOverride('Portrait Crop, 3x4 Ratio', upload_to='some/dir', original='full_size', aspect='3x4')
```#### admin.py ####
```python
from crop_override.admin import CropAdminclass ImageAdmin (CropAdmin):
...
```#### views.py ####
```pythonfrom crop_override import get_override
#get_override returns crop field or originaldef some_view (request):
...
im = Image.objects.get(id=some_id)
image_for_square_use = get_override(im, 'square_crop'))
image_for_landscape_use = get_override(im, 'landscape_crop'))
image_for_portrait_use = get_override(im, 'portrait_crop'))
...
```#### some_template.html Using Sorl Thumbnail ####
```html
{% load crop_util thumbnail %}{% thumbnail model_instance|get_override:'square_crop' "400x400" crop="center" as square %}
Square Image:![]()
{% endthumbnail %}{% thumbnail model_instance|get_override:'landscape_crop' "400x300" crop="center" as landscape %}
Landscape Image:![]()
{% endthumbnail %}{% thumbnail model_instance|get_override:'portrait_crop' "300x400" crop="center" as portrait %}
Portrait Image:![]()
{% endthumbnail %}```