import fileinput import re import sys active_model = "" for line in fileinput.input(): if active_model == "" and not line.startswith("class"): sys.stdout.write(line) continue if line.startswith("#"): sys.stdout.write(line) continue if line.startswith("class"): active_model = re.findall("class\ (.*)\(models.Model\):", line)[0] sys.stdout.write(line) continue if "models.ForeignKey" in line: line = re.sub("ForeignKey\((.*),", "ForeignKey('\\1',", line) line = re.sub("''self''", "'self'", line) db_column = re.findall("db_column='(.*)'", line)[0] line = re.sub("\)$", ", related_name='%s_%s')" % (active_model.lower(), db_column), line) sys.stdout.write(line) continue sys.stdout.write(line)