在模型中创建对象
目地:向数据库中添加数据
方法: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>