如何在注册表格django中添加另一个表格



这是我的代码:

views.py

class SignUpView(generic.CreateView):
form_class = SignUpForm
success_url = reverse_lazy('login')
template_name = 'registration/signup.html'

forms.py

class SignUpForm(UserCreationForm):
first_name = forms.CharField(max_length=30, required=True, help_text='Required.')
last_name = forms.CharField(max_length=30, required=True, help_text='Required.')
email = forms.EmailField(max_length=254, required=True , help_text='Required.')
class Meta:
model = User
fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2',)

class ProfileForm(forms.ModelForm):
location = forms.CharField(max_length=200, required=True, help_text='Required.')
phone = forms.CharField(max_length=10, required=True, help_text='Required.')
class Meta:
model = Profile
fields = ('location','phone')

我不知道如何使用profileform扩展注册表单,我希望用户在注册后一起提交

你可以这样做:-

forms.py

from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
class SignUpForm(UserCreationForm):
email = forms.EmailField(max_length=200)
password1 = forms.CharField(widget=forms.PasswordInput())
username = forms.CharField(help_text=False)
first_name = forms.CharField(max_length=25)
address = forms.CharField(max_length=200)
phone = forms.IntegerField()
gender = forms.ChoiceField(choices=GENDER_CHOICES)
age = forms.IntegerField()

class Meta:
model = User
fields = (
'first_name',
'address',
'phone',
'gender',
'age',
'email',            
'username',
)

signup.html

{% extends "mains/base.html" %}
{% block content %}
<form method="post" action="{% url 'users:signup_view' %}">
{% csrf_token %}
{{ form.as_p }}
<button name="submit">Register</button>
</form>
{% endblock content %}

(代码已成功测试并工作(

您还可以使用Django Crispy Forms来使表单看起来更漂亮、更得体

最新更新