Python 如何在django中扩展UserCreationForm中的字段?

Python 如何在django中扩展UserCreationForm中的字段?,python,django,django-forms,django-registration,Python,Django,Django Forms,Django Registration,我一直试图在UserCreationForm中添加一个电话号码字段,以便用户在注册时提供其电话号码,但不幸的是,电话号码没有存储。它接受注册页面上的电话号码,但不在网页上显示电话号码。我认为这不是储存 forms.py class myCreateForm(UserCreationForm): ph= forms.CharField(max_length=400, required=True, label='Phone') class Meta: model = User fie

我一直试图在UserCreationForm中添加一个电话号码字段,以便用户在注册时提供其电话号码,但不幸的是,电话号码没有存储。它接受注册页面上的电话号码,但不在网页上显示电话号码。我认为这不是储存

forms.py

class myCreateForm(UserCreationForm):
ph= forms.CharField(max_length=400, required=True, label='Phone')
class Meta:
    model = User
    fields = ['first_name', 'last_name' ,'username', 'email', 'password1', 'password2','ph']

def save(self, commit=True):
    user = super(myCreateForm, self).save(commit=False)
    user.ph = self.cleaned_data["ph"]
    if commit:
        user.save()
    return user
视图.py

def register(request):
form = myCreateForm()
if request.method == "POST":
    form = myCreateForm(request.POST)
    if form.is_valid():
        form.save()
        return redirect('loginPage')
return render(request , 'register.html', {'form' : form})
模板

{%for i in user%}
Hi {{i.first_name}}<br>
Username : {{i.username}}<br>
E-Mail : {{i.email}}<br>
Phone : {{i.ph}}<br>
{%endfor%}
{%for用户%中的i}
你好{{i.first_name}}
用户名:{{i.Username}}
电子邮件:{{i.email}}
电话:{{i.ph}}
{%endfor%}
但在我的网页上,除了电话号码,它什么都显示了


请帮助我

您需要扩展Django用户模型。请参阅

例如,让我们创建一个新模型
Profile
,它将与django用户模型有
OneToOne
关系

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    phone = models.CharField(max_length=50..)
现在在你看来

form = myCreateForm(request.POST)
    if form.is_valid():
        user = form.save()
        phone = form.cleaned_data.get('ph')
        Profile.objects.create(user=user,phone=ph)
        return redirect...
现在,在模板
{{i.profile.phone}}
中将给出phone字段的结果