models: improve profile form and profile display
This commit is contained in:
parent
98c85303fd
commit
2932566b3d
|
@ -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()]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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')),)
|
||||
|
|
Loading…
Reference in New Issue