I am struggling with changing default UserCreationForm - I was able to add one additional field by creating child class:
class SignUpForm(UserCreationForm):
display_name = forms.CharField(max_length=32, help_text='Your display name')
class Meta:
model = User
fields = ('username', 'display_name', 'password1', 'password2', )
def register(request):
if request.method == 'POST':
form = SignUpForm(request.POST)
if form.is_valid():
user = form.save()
user.refresh_from_db()
user.profile.display_name = form.cleaned_data.get('display_name')
user.save()
raw_password = form.cleaned_data.get('password1')
user = authenticate(username=user.username, password=raw_password)
login(request, user)
return redirect('user/home')
else:
form = SignUpForm()
return header.views.show(request, 'userpanel/register.html', context={'form': form})
Together with template:
<form method="post">
{% csrf_token %}
{% for field in form %}
<p>
{{ field.label_tag }}<br>
{{ field }}
{% if field.help_text %}
<small style="color: grey">{{ field.help_text | safe }}</small>
{% endif %}
{% for error in field.errors %}
<p style="color: red">{{ error | safe }}</p>
{% endfor %}
</p>
{% endfor %}
<button type="submit">Sign up</button>
</form>
I was able to create following page:
But I have the problem with changing description texts on a page. Now, if I would like to change Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. to something else, how to do it?