diff -r e82940a7c9f0 south/management/commands/startmigration.py
|
a
|
b
|
|
| 669 | 669 | return depends |
| 670 | 670 | |
| 671 | 671 | |
| 672 | | def field_dependencies(field, last_models=None): |
| 673 | | depends = {} |
| 674 | | if isinstance(field, (models.OneToOneField, models.ForeignKey, models.ManyToManyField)): |
| | 672 | def field_dependencies(field, last_models=None, processed=set()): |
| | 673 | |
| | 674 | depends={} |
| | 675 | |
| | 676 | if isinstance(field, (models.OneToOneField, models.ForeignKey, models.ManyToManyField, GenericRelation)): |
| | 677 | |
| | 678 | if str(field.rel.to) in processed: |
| | 679 | return depends |
| | 680 | else: |
| | 681 | processed.add(str(field.rel.to)) |
| | 682 | |
| 675 | 683 | depends[field.rel.to] = last_models |
| 676 | | depends.update(field_dependencies(field.rel.to._meta.pk, last_models)) |
| | 684 | depends.update(field_dependencies(field.rel.to._meta.pk, last_models,processed)) |
| | 685 | |
| 677 | 686 | return depends |
| 678 | 687 | |
| 679 | 688 | |
| … |
… |
|
| 972 | 981 | # Deleting unique_together for [%s] on %s. |
| 973 | 982 | db.delete_unique(%r, %r) |
| 974 | 983 | ''' |
| 975 | | FIELD_NEEDS_DEF_SNIPPET = "<< PUT FIELD DEFINITION HERE >>" |
| 976 | | No newline at end of file |
| | 984 | FIELD_NEEDS_DEF_SNIPPET = "<< PUT FIELD DEFINITION HERE >>" |