Django 学生信息 添加 功能 遇到的问题.

1  添加 班级信息时的问题 (grade为外键)

原因是 grade 必需接收 一个 实例,

而我交是一个 str字符串,

    if request.method == ‘POST‘:
         data = {
            ‘name‘: request.POST.get(‘name‘, ‘‘),
            ‘sex‘: request.POST.get(‘sex‘),
            ‘age‘: request.POST.get(‘age‘),
            ‘qq‘: request.POST.get(‘qq‘),
            ‘phone‘: request.POST.get(‘qq‘),
            ‘grade‘: request.POST.get(‘grade‘)  #  XXXX 字符串

         }
         student = Student(**data)
         student.save()
修改为:
 ‘grade‘: Grade.objects.filter(pk = request.POST.get(‘grade‘))返回一个查询集,还是一行需要接受一个  "实例"对象

加了一个.first()  后 正常...

下面有常用查询  和返回的类型.

 ‘grade‘: Grade.objects.filter(pk = request.POST.get(‘grade‘)).first()

3.常用查询
通过模型类上的管理器来构造QuerySet。
- 模型类上的管理器是啥?
模型类.objects
- QuerySet 表示数据库中对象的集合。
等同于select 语句。 惰性的
案例:

- first() 获取第一条 返回的是对象
- last() 获取最后一条 返回的也是一个对象
思考:排序规则? 默认通过主键。通过_meta 设置
- get(**kwargs) 根据给定的条件,获取一个对象,如果有多个对象符合,保存

- all() 获取所有记录 返回的是queryset
- filter(**kwargs) 根据给定的条件,获取一个过滤后的queryset,多个条件使用and连接。
- exclude(**kwargs) 跟filter使用方法一致,作用想反,它是排除。
- 多条件的OR连接 用到Q对象,django.db.models.Q
- values(*fields) 返回一个queryset,返回一个字典列表,而不是数据对象。
- only(*fiels) 返回querySet ,对象列表,注意only一定包含主键字段
- defer(*fields) 返回一个QuerySet,作用和only相反
- order_by(*fields) 根据给定的字段来排序 默认是顺序,字段名前加上 ‘-’代表反序
- 切片 和python的列表切片用法相似,不支持负索引,数据量大时不用步长
*** 切片过后,不再支持,附加过滤条件与排序

问题 2   性别 : request.POST.get(‘sex‘)

传的值 是on,不是 1或 0

原因  是 checked 值没写...

光看老师写了...没加这个字段...

class StudentDetail(models.Model):
    high = models.SmallIntegerField(verbose_name=‘身高‘,default=0)
    weight = models.SmallIntegerField(verbose_name=‘体重‘,default=0)
    introduction = models.TextField(verbose_name=‘简介‘,default=‘‘)
    num = models.CharField(‘身份证号码‘, max_length=20,default=‘‘, unique=True,null=True)  #补加一下.
    student = models.OneToOneField(‘Student‘,on_delete=models.CASCADE)

找到 url ...

app_name : 视图名,不能空格.

原文地址:https://www.cnblogs.com/crave/p/10478598.html

时间: 2024-10-09 14:29:45

Django 学生信息 添加 功能 遇到的问题.的相关文章

实现学生信息添加界面(连接数据库)

  1登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头:(1分) 2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母.数字组成.(1分) 3性别:要求用单选框或下拉框实现,选项只有“男”或“女”:(1分) 4学号:要求八位数字组成,前四位为“2018”开头,输入自己学号:(1分) 5姓名:输入自己的姓名: 5电子邮箱:要求判断正确格式[email protected]:(1分) 6点击“添加”按钮,将学生个人信息存储到数据库中.(3分) 7可以演示连接上数据

添加学生信息并显示

思路分析 第一,创建表单 <fieldset> <legend>学生信息添加</legend> <form id="mainForm"> 姓名:<input type="text" name="name"> <br> 年龄:<input type="text" name="age"> <br> 性别:<in

学生信息管理系统 1.0

学生信息管理系统V1.0 1.实现用户的注册与登录功能. 1.1:注册时检测用户名,如果有重复则需要重新输入,用户信息存入数据库. 1.2:登录时,有验证码验证. 2.实现用户查询学生表的基本信息. 3.用户可以更改.删除学生表信息. 4.系统可以正确显示系统时间. 5.系统正确显示用户权限(功能暂未实现). 因为很多东西还没有学到,只能用最基础的代码实现功能. 1)欢迎页面 1 <%@ page language="java" contentType="text/ht

【填坑中】学生信息管理系统

目标:简易的学生信息管理系统 功能: -建立学生档案,管理.维护. --录入.更改信息. -成绩管理,查询.修改学生成绩. --根据课程. -课程管理,添加.删除.修改. -班级设置,添加.删除.修改. -分配权限,保证安全性. --不同人员不同权限. 模块图: https://www.processon.com/view/link/56973106e4b038369d270acb 模块设计: -登录模块 --输入用户名 和 密码,如果匹配,则进入主控平台:否则给出错误提示.不明文保存密码. -

Java学生信息管理系统源码

学生信息管理系统 功能说明 学生信息管理,包括学生.班级.院系.课程.成绩等的管理. 本程序仅供学习食用. 工程环境 JDK IntelliJ IDEA MySQL 运行说明 1.安装JDK. 2.导入SQL脚本并配置. 使用前请导入DumpStructureOnly.sql(数据库结构文件) 或者 DumpStructure_and_Data.sql(带有测试数据的数据库文件), 使用Navicat导入上述脚本至MySQL数据库 修改dbConn.java配置文件: 数据库端口:3306 数据

用Java实现一个简单的学生信息管理系统

public class Student { private String no; //学号(长度为6位) private String name; //姓名 private String idCard; //证件号(18位) private int sex; //性别(男(1)/女(0)) private int age; //年龄(1-100) public Student(){} public Student(String no, String name, String idCard, i

学术休假-学生信息管理系统v1.0

这是第一个学术休假的项目,主体部分在回家时的火车上完成的,隔了几天继续加工,今天终于完成,这是学生管理系统的beta版本,后续还将继续完善. 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等.试设计一学生信息管理系统,使之能提供以下功能: (1)系统以菜单方式工作 (2)学生信息录入功能(学生信息用文件保存)---输入 (3)学生信息浏览功能---输出 (4)查询.排序功能 按学号查询 按姓名查询 (5)学生信息的删除与修改(可选项) /* *Copyright (c)

用List传递学生信息

集合在程序开发中经常用到,例如,在业务方法中将学生信息.商品信息等存储到集合中,然后作为方法的返回值返回给调用者,以此传递大量的有序数据. 本实例将使用List集合在方法之间传递学生的信息.实例效果如下: 设计过程 1)在项目中新建窗体类ClassInfo. 在窗体中添加JScrollPane,再在JScrollPane中放置表格控件JTable. 2)编写getTable()方法.在该方法中创建表格对象并设置表格的数据模型,然后调用getStudents()方法获取学生信息的集合对象, 在遍历

使用List集合传递传递学生信息

import java.awt.BorderLayout; import java.awt.EventQueue; import java.util.ArrayList; import java.util.List; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.table.DefaultTableModel; impo