django中的Form和ModelForm中的问题

django的Form组件中,如果字段中包含choices参数,请使用两种方式实现数据源实时更新

方法一:重写构造方法,在构造方法中重新去获取值
class UserForm(forms.Form):
    name=fields.CharField(label=‘用户名‘,max_length=32)
    email=fields.EmailField(label=‘邮箱‘)
    u_id=fields.ChoiceField(
    choice=[]
    )
    def __init__(self,*args,**kwargs):
        super(UserForm.self).__init__(*args,**kwargs)    #根据UserType表中的更新过的用户类型重新获取更新后的UserType中的数据  
        self.fields[‘u_id‘].choice=models.UserType.object.all().value_list(‘id‘,‘title‘)

方式二: ModelChoiceField字段
from django.forms import Form
from django.forms import fields
from django.forms.models import ModelChoiceField
class UserForm(Form):
  name = fields.CharField(label=‘用户名‘,max_length=32)
  email = fields.EmailField(label=‘邮箱‘)
  ut_id = ModelChoiceField(queryset=models.UserType.objects.all())

依赖:
class UserType(models.Model):
  title = models.CharField(max_length=32)

  def __str__(self):
    return self.title

原文地址:https://www.cnblogs.com/ghl666/p/11470292.html

时间: 2024-11-08 12:24:09

django中的Form和ModelForm中的问题的相关文章

Django 中的Form、ModelForm

一.ModelForm 源码 class ModelForm(BaseModelForm, metaclass=ModelFormMetaclass): pass def modelform_factory(model, form=ModelForm, fields=None, exclude=None, formfield_callback=None, widgets=None, localized_fields=None, labels=None, help_texts=None, erro

django中的Form

基于django.forms.Form:所有表单类的父类 基于django.forms.ModelForm:可以和模型绑定的form djangoform的最简单的实现: 在Form类中添加 class PublisherForm(forms.Form): name=forms.CharField(label="名称",error_messages={"required":"不能为空"}) address=forms.CharField(&quo

Django 中的Form表单认证

一.Form表单 ? 1.1 Form的几个功能 验证用户数据(显示错误信息) 初始化页面显示内容 HTML Form提交保留上次提交数据 生成HTML标签 ? 1.2 创建表单类Form 1. 创建的类必须继承类:forms.Form 2. 字段名必须与前端表单中的名称一致(完全一样) 3. Field类是所有其他类的基类 #!/usr/bin/env python # -*- coding:utf-8 -*- import re from django import forms from d

Django 框架篇(九): Django中的Form 组件

Django中的Form组件,帮我们处理了 form表单中的校验, 和错误提示的处理: 主要功能: 生成页面可用的HTML标签 对用户提交的数据进行校验 保留上次输入内容 使用form组件实现注册功能 1.  定义一个类, 继承django中的 forms.Form 代码实例: from django import forms # 按照Django form组件的要求自己写一个类 class RegForm(forms.Form): name = forms.CharField(label="用

django中的 form 表单操作

1. 定义   from django import forms # 定义form   class RegForm(fo rms.Form):    user = forms.CharField(label='用户名')    pwd = forms.CharField(label='密码') 2. 使用   视图中    form_obj = RegForm()    return render(request, 'register2.html', {"form_obj": form

Django中的Form(二)

一.保存用户输入内容 如果用户输入一张表单提交后出现错误时,会出现重现填写的情况.我们可以把用户输入的信息保存下来,并返回到前台页面,这样用户就无需再次输入. views.py 1 # coding:utf-8 2 from django.shortcuts import render, HttpResponse, redirect 3 from app01.forms import account as Account_Forms 4 5 6 def login(request): 7 8 o

转 Django中的Form

https://www.cnblogs.com/chenchao1990/p/5284237.html Form 一.使用Form Django中的Form使用时一般有两种功能: 1.生成html标签 2.验证输入内容 要想使用django提供的form,要在views里导入form模块 from django import forms 然后再定义一个类,这个类就是要在前端html页面中生成form表单中的input标签的. 1 class UserInfo(forms.Form): 2 ema

Django中的form表单

1,手写一个form表单提交数据 有input标签,让用户可以填数据 校验form表单提数据 提示错误信息 html页面代码: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <title>注册</title> </head> <body> <h1>form表单中的注册<

python3-开发进阶Django-form组件中model form组件

Django的model form组件 这是一个神奇的组件,通过名字我们可以看出来,这个组件的功能就是把model和form组合起来,先来一个简单的例子来看一下这个东西怎么用:比如我们的数据库中有这样一张学生表,字段有姓名,年龄,爱好,邮箱,电话,住址,注册时间等等一大堆信息,现在让你写一个创建学生的页面,你的后台应该怎么写呢?首先我们会在前端一个一个罗列出这些字段,让用户去填写,然后我们从后天一个一个接收用户的输入,创建一个新的学生对象,保存其实,重点不是这些,而是合法性验证,我们需要在前端判