77from django .db import models
88from django .db .models .fields .related import ForeignKey , OneToOneField
99
10+ import debug # pyflakes:ignore
11+
1012class 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