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

Posted crave

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 : 视图名,不能空格.

技术图片

 

以上是关于Django 学生信息 添加 功能 遇到的问题.的主要内容,如果未能解决你的问题,请参考以下文章

Django案例:学生信息管理

代写大作业代写大学计算机基础编程

python基础编程:学生信息管理系统 包含学生的添加查询修改删除等功能。

python基础编程:学生信息管理系统 包含学生的添加查询修改删除等功能。

Django框架 之 modelform组件

Django框架 之 modelform组件