models: improve profile form and profile display

This commit is contained in:
Benjamin Dauvergne 2013-04-23 15:01:44 +02:00
parent 98c85303fd
commit 2932566b3d
3 changed files with 12 additions and 11 deletions

View File

@ -39,3 +39,6 @@ class UserProfileForm(forms.ModelForm):
class Meta:
model = get_user_model()
fields = [ field_name
for field_name in get_user_model().USER_PROFILE
if field_name in get_user_model()._meta.get_all_field_names()]

View File

@ -57,7 +57,13 @@ def profile(request):
# User attributes management
profile = []
try:
for field_name, title in getattr(request.user, 'USER_PROFILE', []):
for field_name in getattr(request.user, 'USER_PROFILE', []):
if isinstance(field_name, tuple):
field_name, title = field_name
elif isinstance(field_name, str):
title = request.user._meta.get_field(field_name).verbose_name
else:
raise TypeError('USER_PROFILE must contain string or tuple')
value = getattr(request.user, field_name, None)
if not value:
continue

View File

@ -177,13 +177,5 @@ class User(AbstractUser):
postal_address = models.TextField(verbose_name=_("Postal address"),
max_length=255, blank=True)
USER_PROFILE = (
('username', _('Username')),
('first_name', _('First name')),
('last_name', _('Last name')),
('email', _('Mail')),
('nickname', _('Nickname')),
('url', _('Homepage')),
('phone', _('Phone')),
('roles', _('Roles')),
)
USER_PROFILE = ( 'username', 'first_name', 'last_name', 'email',
'nickname', 'url', 'phone', ('roles', _('roles')),)