我正在尝试为已经使用电子邮件,电话号码等注册的用户保存个人资料详细信息。
我的表单提交成功,并根据需要重定向到个人资料页面。个人资料数据在模板{{request.user.profile.dob}}
但是,当我访问/ admin页面并浏览/admin/profiles/profile/
时,它显示为0 profiles
。
当我通过Shell运行Profile.objects.all()时,它会给出<QuerySet []>
。
但是,当我通过一个User对象访问配置文件时,就会得到数据。当我使用查询select * from profiles_profile;
我要生气了,但我认为这肯定是我犯下的错误。
请帮助。
谢谢
这是我的模特
/users
class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(max_length=254, unique=True, help_text="A verification link will be sent to this email-id")
is_staff = models.BooleanField(default=False)
is_superuser = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
mobile = models.CharField(db_index=True,max_length=10,null=True, verbose_name="mobile number",)
USERNAME_FIELD = 'email'
EMAIL_FIELD = 'email'
/profiles
class Profile(models.Model):
user=models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE,
primary_key=True, related_name="profile")
name=models.CharField(max_length=70, null=True)
dob=models.DateField(blank=False,null=True, verbose_name="Date of birth",);
settings.py
AUTH_USER_MODEL = 'users.User'
这是我的ModelForm
class PersonalDetailsForm(forms.ModelForm):
class Meta:
model=Profile
fields=('name', 'dob', )
和CreateView
class AddPersonalDetails(CreateView, ):
model=Profile
form_class=PersonalDetailsForm
def form_valid(self, form):
profile = form.save(commit=False)
profile.user = self.request.user
profile.save()
return redirect(reverse('my_profile'))
提交表单后,