Python DJANGO表单在用户配置文件注册中添加电话号码
因此,我目前的问题是,我目前有一个表单来创建一个用户,我们现在正在为此添加一个电话号码选项。它目前正在创建用户和用户配置文件,但用户配置文件没有保存电话号码。我唯一能够获得它的方式是通过django管理页面手动 我尝试了一些变化,但没有一个到目前为止,我感谢任何帮助,我可以得到 #这是我的表格Python DJANGO表单在用户配置文件注册中添加电话号码,python,django,django-models,django-views,django-forms,Python,Django,Django Models,Django Views,Django Forms,因此,我目前的问题是,我目前有一个表单来创建一个用户,我们现在正在为此添加一个电话号码选项。它目前正在创建用户和用户配置文件,但用户配置文件没有保存电话号码。我唯一能够获得它的方式是通过django管理页面手动 我尝试了一些变化,但没有一个到目前为止,我感谢任何帮助,我可以得到 #这是我的表格 class UserRegisterForm(UserCreationForm): email = forms.EmailField() class Meta: model
class UserRegisterForm(UserCreationForm):
email = forms.EmailField()
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2']
#fields = UserCreationForm.Meta.fields+ ('username', 'email', 'password1', 'password2')
def clean(self):
email = self.cleaned_data.get('email')
username = self.cleaned_data.get('username')
if email and User.objects.filter(email=email).exclude(username=username).exists():
raise forms.ValidationError('Email addresses must be unique.')
return super().clean()
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ['phone_number']
这是我的观点
def register(request):
if request.method == 'POST':
form = UserRegisterForm(request.POST)
profile_form = UserProfileForm(request.POST) #added
if form.is_valid() and profile_form.is_valid(): #addded profile form
form.save()
profile_form.save() #added
messages.success(request, 'Account created!')
return redirect('login')
else:
form = UserRegisterForm()
profile_form = UserProfileForm() #added
return render(request, 'user/register.html', {'form': form, 'profile_form': profile_form})
这是我的register.html
<form method="post">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4">Register</legend>
{{ form|crispy }}
<!-- {{ profile_form.as_p }} -->
</fieldset>
<div class="form-group">
<button type="submit" class="btn btn-outline-info">Sign Up</button>
</div>
</form>
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True)
qr_token = models.CharField(max_length=24, unique=True)
image = models.ImageField(default='default.png', upload_to='profile_pics')
date_created = models.DateTimeField(auto_now_add=True)
is_before_user = models.BooleanField(default=True)
phone_number = PhoneField(null=True, help_text='Contact phone number')
#there is more of it but the rest isnt relevent