打个比方: 我将用户的基本信息 如用户名密码存在继承了Django auth认证组件中的 AbstractUser 类的模型中,并和第二个存了Details模型中,此模型继承UserInfo模型
继承了AbstractUser 的UserInfo表:
ps:不要忘记在setting中 配置: 告诉Django用户认证组件我要使用这张表
AUTH_USER_MODEL = 'blog.UserInfo'
class UserInfo(AbstractUser):
"""用户认证表""" detail = models.OneToOneField(to='Details', on_delete=models.CASCADE, null=True) def __str__(self): return self.username
Details表:
class Details(UserInfo): """用户详细信息表,
继承了UserInfo
""" tel = models.CharField(max_length=16) nickname = models.CharField(max_length=16, null=True)
现在我们进行同步,迁移
这时数据库中生成了两张表:
UserInfo 表 生成了如下字段
details 表 生成了如下字段
表生成好了 接下来我们可以开始使用我们django 的form组件了:
from django import forms from app01.models import * class Register(forms.ModelForm): # from组件 class Meta: model = Details fields = '__all__'
from django.shortcuts import render from app01 import form # Create your views here. # 视图函数 def regist(request): rform = form.Register() return render(request,'regist.html',{"rform":rform})
前端:
此时所有字段就都揉合在一个Form表单里啦
接下来就可以根据自己的需求新选择要渲染的字段啦
有其他方法欢迎提出来,大家一起学习