Django отображение формы на основе булева
Я пытаюсь использовать django-formtools. У меня установлен pip, и он есть в моем settings.py, а также в requirements.text.
В настоящее время моя страница /signup работает для регистрации пользователей, но теперь я хочу добавить другой тип пользователя в начале формы. У него есть этот поток. Я просто хочу убедиться, что формы отображаются в настоящее время.
1. Displays different form based off first form's boolean.
is False: display normal signup form(done)
is True: display form with an added file field
2. Handles the form differently as well
is False: saves the form as an abstractuser(done)
is True: sends to db for an admin to add to.
modals.py
class PickUserType(forms.Form):
is_doctor = forms.BooleanField()
class SignUpForm(UserCreationForm):
first_name = forms.CharField(max_length=30, required=False, help_text='Optional.')
last_name = forms.CharField(max_length=30, required=False, help_text='Optional.')
email = forms.EmailField(max_length=254, help_text='Required. Inform a valid email address.')
class Meta:
model = Profile
fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2', )
views.py
def signup(request):
if request.method == 'POST':
form = SignUpForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
raw_password = form.cleaned_data.get('password1')
user = authenticate(username=username, password=raw_password)
login(request, user)
return redirect('home')
else:
form = SignUpForm()
return render(request, 'registration/signup.html', {'form': form})
urls.py
from django.urls import path
from pages.views import index, signup
urlpatterns = [
path('', index, name='home'),
path('signup/', signup, name="signup"),
]
signup.html
{% extends 'base.html' %}
{% block title %}Sign up{% endblock %}
{% block content %}
<h2>Sign up</h2>
<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 }}</small>
{% endif %}
{% for error in field.errors %}
<p style="color: red">{{ error }}</p>
{% endfor %}
</p>
{% endfor %}
<button type="submit">Sign up</button>
<a href="{% url 'login' %}">Log In</a>
</form>
{% endblock %}