listusedprofilefields.py 874 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. from misago.core.pgutils import chunk_queryset
  5. UserModel = get_user_model()
  6. class Command(BaseCommand):
  7. help = "Lists all profile fields in use."
  8. def handle(self, *args, **options):
  9. keys = {}
  10. for user in chunk_queryset(UserModel.objects.all()):
  11. for key in user.profile_fields.keys():
  12. keys.setdefault(key, 0)
  13. keys[key] += 1
  14. if keys:
  15. max_len = max([len(k) for k in keys.keys()])
  16. for key in sorted(keys.keys()):
  17. space = ' ' * (max_len + 1 - len(key))
  18. self.stdout.write("{}:{}{}".format(key, space, keys[key]))
  19. else:
  20. self.stdout.write("No profile fields are currently in use.")