Django-Form组件

本文介绍了Django Form组件的使用,包括通过模板传递数据,如何使用widgets将文本框转换为下拉框,以及如何在数据库中存储元组类型数据。详细讲解了models.Student.objects的几种方法,如all()、values()和values_list(),并提醒了创建Form组件时的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Django Form组件
一、使用模板对数据进行传递
1、view.py
def class_list(request):
cla_list=models.Classes.objects.all()
return render(request,‘cla_list.html/’,{‘cla_list’:cla_list})
其中,
2、HTML

  • {% for row in cla_list %}
  • {{row.classname}}
  • {% endfor %} 添加 删除 修改
其中,模板{{row.classname}}为变量 3、总结模板语法: view:{"HTML变量名" : "views变量名"} HTML:{{变量名}} 二、Form组件的使用
1、定义Form组件类,创建form组件可以在view.py中创建,也可以通过自定义myform.py文件进行创建

class Classesform(forms.Form):
classname=fields.CharField(min_length=4,max_length=8)
注;可以通过设置widgets来将文本框设置为下拉框
2、具体实现:
from django.forms import widgets
form设置:
cls_id = fields.IntegerField(widget=widgets.Select(choices=[(1,‘一年级1班’),(2,‘二年级2班’)]))
html效果:
在这里插入图片描述
3、在数据库中存储元组类型数据
模块objects主要方法:
models.Student.objects.all(): 返回QuerySet 类型数据,类似于 list,里面放的是一个个模型类的对象,可用索引下标取出模型类的对象。
models.Student.objects.values():返回的是 QuerySet 类型数据,类似于 list,是一个可迭代的字典序列,字典里的键是字段,值是数据。
models.Student.objects.values_list() :返回的是 QuerySet 类型数据,类似于 list,是一个个元组,元组里放的是查询字段对应的数据。

在数据库中如何存储(1,'一年级1班')**,**(2,'二年级2班')类似的元组
    cls_id = fields.IntegerField(widget=widgets.Select(choices=models.Classes.objects.values_list('id', 'classname')))
2、在view.py中创建Form组件对象并进行使用
  if request.method == 'GET':
    stuobj = Studentform()
    return render(request, 'add_stu.html/', {'stuobj': stuobj})
else:
    stuobj = Studentform(request.POST)
    if stuobj.is_valid():
        stu_dic = stuobj.cleaned_data
        print(stu_dic)
        # id=stu_list.id
        models.Student.objects.create(stuname=stu_dic['stuname'],
                                      stunumber=stu_dic['stunumber'],
                                      stuemail=stu_dic['stuemail'],
                                      stuage=stu_dic['stuage'],
                                      cls_id=stu_dic['cls_id'])
        return redirect('/stu_list/')
    else:
        return render(request, 'add_stu.html/', {'stuobj': stuobj})

三、Form组件注意事项
1、创建Form组件后,对象会自动生成文本框
2、创建Form组件时字段名称和数据库保持一致性

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值