generated from 2martens/django-template
46 lines
1.5 KiB
Python
46 lines
1.5 KiB
Python
# coding=utf-8
|
|
from gettext import gettext as _
|
|
|
|
from django import forms
|
|
from django.contrib.auth.forms import ReadOnlyPasswordHashField
|
|
from django.contrib.auth.forms import UsernameField
|
|
from django.contrib.auth.models import User
|
|
from django.urls import reverse
|
|
|
|
from food_planner.models import Profile
|
|
|
|
|
|
class UserForm(forms.ModelForm):
|
|
password = ReadOnlyPasswordHashField(
|
|
label=_("Password"),
|
|
help_text=_(
|
|
'Raw passwords are not stored, so there is no way to see the '
|
|
'password, but you can change the password using '
|
|
'<a href="{}">this form</a>.'
|
|
),
|
|
)
|
|
|
|
class Meta:
|
|
model = User
|
|
fields = ['username', 'password', 'email', 'first_name', 'last_name']
|
|
field_classes = {'username': UsernameField}
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
password = self.fields.get('password')
|
|
if password:
|
|
password.help_text = password.help_text.format(reverse('password_change'))
|
|
|
|
def clean_password(self):
|
|
# Regardless of what the user provides, return the initial value.
|
|
# This is done here, rather than on the field, because the
|
|
# field does not have access to the initial value
|
|
return self.initial.get('password')
|
|
|
|
|
|
class ProfileForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Profile
|
|
fields = ['daily_fat_demand', 'daily_carbohydrate_demand',
|
|
'daily_sugar_demand', 'daily_roughage_demand', 'daily_protein_demand']
|