0020_image_hashes.py
91 lines
| 5.8 KiB
| text/x-python
|
PythonLexer
neko259
|
r527 | # -*- coding: utf-8 -*- | ||
import hashlib | ||||
from south.utils import datetime_utils as datetime | ||||
from south.db import db | ||||
from south.v2 import DataMigration | ||||
from django.db import models | ||||
class Migration(DataMigration): | ||||
def forwards(self, orm): | ||||
# Note: Don't use "from appname.models import ModelName". | ||||
# Use orm.ModelName to refer to models in this application, | ||||
# and orm['appname.ModelName'] for models in other applications. | ||||
for post in orm.Post.objects.filter(image_width__gt=0): | ||||
md5 = hashlib.md5() | ||||
for chunk in post.image.chunks(): | ||||
md5.update(chunk) | ||||
image_hash = md5.hexdigest() | ||||
post.image_hash = image_hash | ||||
post.save() | ||||
def backwards(self, orm): | ||||
"Write your backwards methods here." | ||||
models = { | ||||
'boards.ban': { | ||||
'Meta': {'object_name': 'Ban'}, | ||||
'can_read': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||||
'ip': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), | ||||
'reason': ('django.db.models.fields.CharField', [], {'default': "'Auto'", 'max_length': '200'}) | ||||
}, | ||||
'boards.post': { | ||||
'Meta': {'object_name': 'Post'}, | ||||
'_text_rendered': ('django.db.models.fields.TextField', [], {}), | ||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||||
'image': ('boards.thumbs.ImageWithThumbsField', [], {'max_length': '100', 'blank': 'True'}), | ||||
'image_hash': ('django.db.models.fields.CharField', [], {'max_length': '36'}), | ||||
'image_height': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||||
'image_pre_height': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||||
'image_pre_width': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||||
'image_width': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||||
'last_edit_time': ('django.db.models.fields.DateTimeField', [], {}), | ||||
'poster_ip': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), | ||||
'poster_user_agent': ('django.db.models.fields.TextField', [], {}), | ||||
'pub_time': ('django.db.models.fields.DateTimeField', [], {}), | ||||
'referenced_posts': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'rfp+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['boards.Post']"}), | ||||
'text': ('markupfield.fields.MarkupField', [], {'rendered_field': 'True'}), | ||||
'text_markup_type': ('django.db.models.fields.CharField', [], {'default': "'markdown'", 'max_length': '30'}), | ||||
'thread': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['boards.Post']", 'null': 'True'}), | ||||
'thread_new': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['boards.Thread']", 'null': 'True'}), | ||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '50'}), | ||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['boards.User']", 'null': 'True'}) | ||||
}, | ||||
'boards.setting': { | ||||
'Meta': {'object_name': 'Setting'}, | ||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}), | ||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['boards.User']"}), | ||||
'value': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||||
}, | ||||
'boards.tag': { | ||||
'Meta': {'object_name': 'Tag'}, | ||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||||
'linked': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['boards.Tag']", 'null': 'True', 'blank': 'True'}), | ||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||||
'threads': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'tag+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['boards.Thread']"}) | ||||
}, | ||||
'boards.thread': { | ||||
'Meta': {'object_name': 'Thread'}, | ||||
'archived': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||||
'bump_time': ('django.db.models.fields.DateTimeField', [], {}), | ||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||||
'last_edit_time': ('django.db.models.fields.DateTimeField', [], {}), | ||||
'replies': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'tre+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['boards.Post']"}), | ||||
'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['boards.Tag']", 'symmetrical': 'False'}) | ||||
}, | ||||
'boards.user': { | ||||
'Meta': {'object_name': 'User'}, | ||||
'fav_tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['boards.Tag']", 'null': 'True', 'blank': 'True'}), | ||||
'fav_threads': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['boards.Post']"}), | ||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||||
'rank': ('django.db.models.fields.IntegerField', [], {}), | ||||
'registration_time': ('django.db.models.fields.DateTimeField', [], {}), | ||||
'user_id': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||||
} | ||||
} | ||||
complete_apps = ['boards'] | ||||
symmetrical = True | ||||