listusedprofilefields.py 794 B

1234567891011121314151617181920212223242526
  1. from django.contrib.auth import get_user_model
  2. from django.core.management.base import BaseCommand
  3. from ....core.pgutils import chunk_queryset
  4. User = get_user_model()
  5. class Command(BaseCommand):
  6. help = "Lists all profile fields in use."
  7. def handle(self, *args, **options):
  8. keys = {}
  9. for user in chunk_queryset(User.objects.all()):
  10. for key in user.profile_fields:
  11. keys.setdefault(key, 0)
  12. keys[key] += 1
  13. if keys:
  14. max_len = max([len(k) for k in keys])
  15. for key in sorted(keys):
  16. space = " " * (max_len + 1 - len(key))
  17. self.stdout.write("%s:%s%s" % (key, space, keys[key]))
  18. else:
  19. self.stdout.write("No profile fields are currently in use.")