Django我扩展了User与表Usrprofile为一对一关系 加入telephone字段进行非验证登录(在登陆页面填写该字段,但不去验证)
但是我无法将telephone的值存入Userprofile中,请大神指点一下,我考虑很久都想不出来
forms
def clean_telephone(self):
telephone = self.cleaned_data.get('telephone')
if len(telephone) == 11:
result = UserProfile.objects.filter(telephone__exact=telephone)
else:
raise forms.ValidationError("Your phone is error")
if len(result) > 0:
raise forms.ValidationError("Your username already exists.")
return telephone
views:
def register(request):
if request.method == 'POST':
tel=UserProfile()
form = RegistrationForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
email = form.cleaned_data['email']
password = form.cleaned_data['password2']
telephone = form.cleaned_data['telephone']
user = User.objects.create_user(username=username, password=password, email=email)
user_profile = UserProfile(user=user)
user_profile.save()
return HttpResponseRedirect("/accounts/login/")
else:
form = RegistrationForm()
return render(request, 'loadin/registration.html', {'form': form})
model:
from django.contrib.auth.models import User
from django.db import models
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile')
org = models.CharField('Organization', max_length=128, blank=True)
telephone = models.OneToOneField(User, on_delete=models.CASCADE, related_name='tele', max_length=128)
mod_date = models.DateTimeField('Last modified', auto_now=True)
class Meta:
verbose_name = 'User Profile'
def __str__(self):
return self.user
求大神一定要指教一下,我真的不行了