listusedprofilefields.py 837 B

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