Los campos de Django GenericRelation no están disponibles durante la migración al sur

En un proyecto de Django, tengo modelos definidos de esta manera:

from django.db import models from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes import generic class TaggedEntry(models.Model): content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField() content_object = generic.GenericForeignKey("content_type", "object_id") class Meta: abstract = True class File(TaggedEntry): name = models.CharField(max_length = 256) # some more fields class Folder(models.Model): name = models.CharField(max_length = 200) files = generic.GenericRelation(File) # some more fields 

En el proyecto puedo usarlos de esta manera:

 folder = Folder.objects.get(name="fooo") for f in folder.files.iterator(): print f.name 

Ahora estoy preparando una datamigration con South en la que necesito acceder a los archivos de las carpetas pero el código folder.files.iterator()

me da un error

 Error in migration: main:0015_contenttype_to_manytomany_step0 AttributeError: 'Folder' object has no attribute 'files' 

¿Se espera?

¿Cómo puedo saber si los archivos forman parte de una carpeta?

He encontrado una solución alternativa para filtrar el objeto del archivo con el content_type_id apropiado y el object_id:

 from django.contrib.contenttypes.models import ContentType # ... folder_contenttype = ContentType.objects.get(name="folder") for folder in orm.Folder.objects.all(): for f in orm.File.objects.filter(content_type_id = folder_contenttype.id, object_id = folder.id): # replaces folder.files.iterator(): # ... 

Esto funciona pero es menos legible.