多个ModelForm组合成一个表单

打个比方: 我将用户的基本信息 如用户名密码存在继承了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表单里啦

接下来就可以根据自己的需求新选择要渲染的字段啦

 

有其他方法欢迎提出来,大家一起学习

 

posted on 2018-11-15 19:26 徐建0304 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/Treasuremy/p/9965595.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值