Skip to content

Commit b19aae7

Browse files
committed
Tweaked the output of the check_referential_integrity script to specify the through table name for m2m relationships.
- Legacy-Id: 10838
1 parent 71fee2a commit b19aae7

1 file changed

Lines changed: 11 additions & 9 deletions

File tree

ietf/utils/management/commands/check_referential_integrity.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
from django.db import models
88
from django.db.models.fields.related import ForeignKey, OneToOneField
99

10+
import debug # pyflakes:ignore
11+
1012
class Command(BaseCommand):
1113
help = "Check all models for referential integrity."
1214

@@ -17,18 +19,18 @@ def handle(self, *args, **options):
1719
def check_field(field):
1820
foreign_model = field.related.parent_model
1921
if verbosity > 1:
20-
print " %s -> %s.%s"%(field.name,foreign_model.__module__,foreign_model.__name__),
22+
print " %s -> %s.%s" % (field.name,foreign_model.__module__,foreign_model.__name__),
2123
used = set(field.model.objects.values_list(field.name,flat=True))
2224
used.discard(None)
2325
exists = set(foreign_model.objects.values_list('pk',flat=True))
2426
if verbosity > 1:
2527
if used - exists:
26-
print ' ** Bad key values:',list(used - exists)
28+
print " ** Bad key values:",list(used - exists)
2729
else:
28-
print 'ok'
30+
print " ok"
2931
else:
3032
if used - exists:
31-
print '%s.%s.%s->%s.%s Bad key values:'%(model.__module__,model.__name__,field.name,foreign_model.__module__,foreign_model.__name__),list(used - exists)
33+
print "%s.%s.%s -> %s.%s Bad key values:" % (model.__module__,model.__name__,field.name,foreign_model.__module__,foreign_model.__name__),list(used - exists)
3234

3335
def check_reverse_field(field):
3436
foreign_model = field.related.parent_model
@@ -37,7 +39,7 @@ def check_reverse_field(field):
3739
foreign_field_name = field.related.var_name
3840
foreign_accessor_name = field.related.get_accessor_name()
3941
if verbosity > 1:
40-
print " %s.%s.%s -> %s"%(foreign_model.__module__, foreign_model.__name__, foreign_field_name, field.model.__name__),
42+
print " %s <- %s -> %s.%s" % (field.model.__name__, field.rel.through._meta.db_table, foreign_model.__module__, foreign_model.__name__),
4143
try:
4244
used = set(foreign_model.objects.values_list(foreign_field_name, flat=True))
4345
except FieldError:
@@ -49,12 +51,12 @@ def check_reverse_field(field):
4951
exists = set(field.model.objects.values_list('pk',flat=True))
5052
if verbosity > 1:
5153
if used - exists:
52-
print ' ** Bad key values:\n ',list(used - exists)
54+
print " ** Bad key values:\n ",list(used - exists)
5355
else:
54-
print ' ok'
56+
print " ok"
5557
else:
5658
if used - exists:
57-
print " %s.%s.%s -> %s.%s ** Bad key values:\n "%(foreign_model.__module__, foreign_model.__name__, foreign_field_name, field.model.__module__, field.model.__name__), list(used - exists)
59+
print "%s.%s <- %s -> %s.%s ** Bad key values:\n " % (field.model.__module__, field.model.__name__, field.rel.through._meta.db_table, foreign_model.__module__, foreign_model.__name__), list(used - exists)
5860

5961
for app in [a for a in models.get_apps() if a.__name__.startswith('ietf.')]:
6062
if verbosity > 1:
@@ -63,7 +65,7 @@ def check_reverse_field(field):
6365
if model._meta.proxy:
6466
continue
6567
if verbosity > 1:
66-
print " %s.%s"%(model.__module__,model.__name__)
68+
print " %s.%s" % (model.__module__,model.__name__)
6769
for field in [f for f in model._meta.fields if isinstance(f, (ForeignKey, OneToOneField)) ]:
6870
check_field(field)
6971
for field in [f for f in model._meta.many_to_many ]:

0 commit comments

Comments
 (0)