Django Models day(6)

在模型中创建对象

目地:向数据库中添加数据

方法:1.定义类函数2.在定义管理器中添加一个方法



 
from django.db import models

# Create your models here.

# -*- coding: utf-8 -*-

class Grades(models.Model):
    gname=models.CharField(max_length=20)
    gdate=models.DateTimeField()
    ggirlnum=models.IntegerField()
    gboynum=models.IntegerField()
    isDelete=models.BooleanField(default=False)

    def __str__(self):
        return self.gname

    class Meta:
        db_table="grades"
        ordering=['id']


class StudentsManager(models.Manager):
    def get_queryset(self):
        return super(StudentsManager,self).get_queryset().filter(isDelete=False)

    def createStudent2(self, name, age, gender, contend, grade, lastT, createT, isD=False):
    # def createStudent2(self):

        stu=self.model()
        print(type(stu))

        stu.sname=name

        stu.sage=age
        stu.sgender = gender
        stu.scontend=contend
        stu.sgrade=grade
        stu.lasttime=lastT
        stu.createtime=createT
        return stu
class Students(models.Model):


    #自定义管理器
    stu_objects=StudentsManager()

    stu_object=models.Manager()
    sname=models.CharField(max_length=20)
    sgender=models.BooleanField(default=True)
    sage=models.IntegerField(db_column="age")
    scontend=models.CharField(max_length=20)
    isDelete=models.BooleanField(default=False)
    # 关联外键
    # -对多(外键在多的地方关联)
    sgrade=models.ForeignKey("Grades")
    # 说明:1.不需要定义主键,自动生成,且自动增加gra
    def __str__(self):
        return self.sname
    lasttime=models.DateTimeField(auto_now=True)
    createtime=models.DateTimeField(auto_now_add=True)
    class Meta:
        db_table="students"
        ordering=['id']


    @classmethod
    def createStudent(cls,name,age,gender,contend,grade,lastT,createT,isD=False):
        stu=cls(sname=name,sage=age,sgender=gender,scontend=contend,\
                lasttime=lastT,sgrade=grade,createtime=createT,isDelete=isD)
        return stu


from .models import Students
def stu (request):
    stulist=Students.stu_objects.all()
    return render(request,'myapp/students.html',
                  {"students":stulist})

def addstudent(request):
    grade=Grades.objects.get(pk=2)
    stu=Students.createStudent("li",25,True,"I am li",grade,"2018-5-1", "2017-5-2")
    stu.save()
    return HttpResponse("Hello")

def addstudent2(request):
    grade=Grades.objects.get(pk=1)
    stu=Students.stu_objects.createStudent2("bob",25,True,"I am bob",grade,"2018-5-1", "2017-5-2")
    stu.save()
    # stu=Students.stu_objects.createStudent2()
    return HttpResponse("hello")

from django.conf.urls import url,include
from.import views
urlpatterns=[
    url(r'^$',views.index),
    url(r'^students/$',views.stu),
    url(r'^addstudent/$',views.addstudent),
    url(r'^addstudent2/$',views.addstudent2),

]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学生信息</title>
</head>
<body>
    <h1>学生信息列表</h1>
    <ul>
        {% for student in students %}
        <li>
            {{ student.sname }}--{{ student.scontend }}
        </li>
        {% endfor %}
    </ul>


</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值