# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.core.urlresolvers import reverse from django.db import models, migrations class Migration(migrations.Migration): def update_urls(apps, schema_editor): Post = apps.get_model('boards', 'Post') for post in Post.objects.all(): thread = post.thread opening_id = Post.objects.filter(threads__in=[thread]).order_by('pub_time').first().id post_url = reverse('thread', kwargs={'post_id': opening_id}) if post.id != opening_id: post_url += '#' + str(post.id) post.url = post_url post.save(update_fields=['url']) dependencies = [ ('boards', '0013_auto_20150408_1210'), ] operations = [ migrations.AddField( model_name='post', name='url', field=models.TextField(default=''), preserve_default=False, ), migrations.RunPython(update_urls), ]