博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django一对多 增 删 改 查
阅读量:7250 次
发布时间:2019-06-29

本文共 5245 字,大约阅读时间需要 17 分钟。

实现一对多表查询功能

项目代码:

models.py

from django.db import models# Create your models here.class Classes(models.Model):    """    班级表,男    """    titile = models.CharField(max_length=32)    m = models.ManyToManyField("Teachers")class Teachers(models.Model):    """    老师表,女    """    name = models.CharField (max_length=32)"""cid_id  tid_id 1    1 1    2 6    1 1000  1000"""# class C2T(models.Model):#     cid = models.ForeignKey(Classes)#     tid = models.ForeignKey(Teachers)class Student(models.Model):    username = models.CharField(max_length=32)    age = models.IntegerField()    gender = models.BooleanField()    cs = models.ForeignKey(Classes)

urls.py

"""django_one URL ConfigurationThe `urlpatterns` list routes URLs to views. For more information please see:    https://docs.djangoproject.com/en/1.10/topics/http/urls/Examples:Function views    1. Add an import:  from my_app import views    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')Class-based views    1. Add an import:  from other_app.views import Home    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')Including another URLconf    1. Import the include() function: from django.conf.urls import url, include    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))"""from django.conf.urls import urlfrom django.contrib import adminfrom app01.views import classesfrom app01.views import studentsurlpatterns = [    url(r'^admin/', admin.site.urls),    url(r'^get_classes.html$', classes.get_classes),    url(r'^add_classes.html$', classes.add_classes),    url(r'^del_classes.html$', classes.del_classes),    url(r'^edit_classes.html$', classes.edit_classes),    url(r'^get_students.html$', students.get_students),    url(r'^add_students.html$', students.add_students),    url(r'^del_students.html$', students.del_students),    url(r'^edit_students.html$', students.edit_students),]

students.py

from django.shortcuts import renderfrom django.shortcuts import redirectfrom app01 import modelsdef get_students(request):    stu_list = models.Student.objects.all()    # for i in stu_list:    #     print(i.id,i.username,i.age,i.cs.id,i.cs.titile)    return render(request,'get_students.html',{
'stu_list':stu_list})def add_students(request): if request.method == 'GET': cs_list = models.Classes.objects.all() return render(request, 'add_students.html', {
'cs_list': cs_list}) elif request.method == 'POST': u = request.POST.get('username') a = request.POST.get('age') g = request.POST.get('gender') c = request.POST.get('cs') models.Student.objects.create( username=u, age=a, gender=g, cs_id=c, ) return redirect('/get_students.html')def del_students(request): nid = request.GET.get('nid') models.Student.objects.filter(id=nid).delete() return redirect('get_students.html')def edit_students(request): if request.method == "GET": nid = request.GET.get('nid') obj = models.Student.objects.filter(id=nid).first() cls_list = models.Classes.objects.all() return render(request, 'edit_students.html',{
'obj': obj,'cls_list': cls_list}) elif request.method == "POST": u = request.GET.get('username') a = request.GET.get('age') g = request.GET.get('gender') c = request.GET.get('cs') models.Student.objects.filter(nid=id).update( username=u, age=a, gender=g, cs_id=c, ) return redirect('/get_students.html')

get_students.html

    
Title
{
% for row in stu_list %}
{
% if row.gender %}
{
% else %}
{
% endif %}
{
% endfor %}
ID 姓名 年龄 性别 班级 操作
{
{ row.id }}
{
{ row.username }}
{
{ row.age }}
{
{ row.cs.titile }}
删除 | 编辑

add_students.html

    
Title

添加用户

{
% csrf_token %}

男: 女:

edit_students.html

    
Title
{
% csrf_token %}

{

% if obj.gender %} 男: 女: {
% else %} 男: 女: {
% endif %}

 

转载地址:http://kgqbm.baihongyu.com/

你可能感兴趣的文章
js 正则表达式
查看>>
函数式编程 - Swift中的Functor(函子)、Monad(单子)、Applicative
查看>>
《Java8实战》-第五章读书笔记(使用流Stream-01)
查看>>
border属性的多方位应用和实现自适应三角形
查看>>
ES6箭头函数 this指向
查看>>
给爬虫爱好者的福利 SelectGadget
查看>>
React - setState源码分析(小白可读)
查看>>
异步(一):Promise深入理解与实例分析
查看>>
WebSocket的SSL认证失败问题记录
查看>>
聊聊partition的方式
查看>>
好好的,谈什么对象
查看>>
Git工作流及发布规范(BED-FED)
查看>>
Flutter TextField详解 | 掘金技术征文
查看>>
jvm优化—— 图解垃圾回收
查看>>
React Native项目自动化打包发布
查看>>
iOS 部署智能合约
查看>>
kafka生产者Producer参数设置及参数调优建议-kafka 商业环境实战
查看>>
2018.06.27 Day01 牛客网java刷题
查看>>
Python正则表达式初识(九)
查看>>
说说 Vue.js 中的 v-cloak 指令
查看>>