django-数据已在数据库中预设,但无法通过Model.objects.all()/ Admin

时间:2019-12-09 16:06:46

标签: django django-admin

我正在尝试为已经使用电子邮件,电话号码等注册的用户保存个人资料详细信息。

我的表单提交成功,并根据需要重定向到个人资料页面。个人资料数据在模板{{request.user.profile.dob}}

中可见

但是,当我访问/ admin页面并浏览/admin/profiles/profile/时,它显示为0 profiles

当我通过Shell运行Profile.objects.all()时,它会给出<QuerySet []>

但是,当我通过一个User对象访问配置文件时,就会得到数据。当我使用查询select * from profiles_profile;

通过sqlite控制台检查时,配置文件数据存在

我要生气了,但我认为这肯定是我犯下的错误。

请帮助。

谢谢


这是我的模特

/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'))

提交表单后,

0 个答案:

没有答案