zoukankan      html  css  js  c++  java
  • 项目中关于记录模块的代码

    更新学生学习记录:

    在views.py 中

    class StudyRecordDetailView(View):
        def get(self,request,class_record_id):
            #找到要跟进的班级信息:
            class_record_obj = models.ClassStudyRecord.objects.get(pk=class_record_id)
            all_study_record = models.StudentStudyRecord.objects.filter(classstudyrecord = class_record_obj)
            #把分数列表传到前端页面上显示:
            score_choices = models.StudentStudyRecord.score_choices
            
            return render(request,'student/study_record_detail.html',{'class_record_obj':class_record_obj,'all_study_record':all_study_record,'score_choices':score_choices})
        
        def post(self,request,class_record_id):
            
            for key , val in request.POST.items():
                if key == 'crsfmiddlewaretoken':
                    continue
                field,pk = key.rsplit('_',1)
                models.StudentStudyRecord.objects.filter(**{'pk':pk}).update(**{field:val})
            return self.get(request,class_record_id)
        	return redirect(reverse('study_decord',args=(class_record_id, )))
        
        
        
        #对重复性操作我们选择更改数据结构
            '''
            更改数据结构:
            {
            	1:{'score':85,'homework_note':'333'},
            	2: {'score':85,'homework_note':'333'},
            }
            '''
            data_dict = {}
             for key , val in request.POST.items():
                if key == 'crsfmiddlewaretoken':
                    continue
                field,pk = key.rsplit('_',1)
                if pk in data_dict:
                    data_dict[pk][field] = val
                else:
                    data_dict[pk]={
                        field:val,
                    }
    		   for spk,sdata in data_dict.items():
                	models.StudentStudyRecord.objects.filter(**{'pk':spk}).update(**sdata)
                return redirect(reverse('study_decord',args=(class_record_id, )))
            
        
        
    

    study_record_detail.html

    <div class="container">
    
        <form action="" method="post">
             {% csrf_token %}
    
             <table class="table table-hover table-striped">
                   <thead>
                        <tr>
                            <th>编号</th><!--表头-->
                            <th>姓名</th>
                            <th>考勤</th>
                            <th>成绩</th>
                            <th>批语</th>
                        </tr>
                   </thead>
                   <tbody>
                        {% for studentstudyrecord in all_study_recored %}
                          <tr>
                              <td>{{ forloop.counter }}</td><!--表格单元-->
                              <td>{{ studentstudyrecord.student }}</td>
                              <td>{{ studentstudyrecord.get_record_display }}</td>
    
                              <td>
                                  <select name="score_{{ studentstudyrecord.pk }}" id="">
    							{% for choice in score_choices %}
                                      {% if studentstudyrecord.score == choice.0 }
                                          <option value='{{choice.0}}' selected>
                                              {{ choice.1 }}
                                          </option>
                 					{% else %}
                                      	  <option value='{{ choice.0 }}'>
                                              {{ choice.1}}
                                          </option>
    
    
                                  </select>
                              </td>
                            <td>
                                <textarea name="homework_note_{{ studentstudyrecord.pk }}" id="" cols="20" rows="1" class="form-control">{{ studentstudyrecord.homework_note|default:"" }}</textarea>
                                <!--default是设置默认值-->
                            </td>
    
                          </tr>
                        {% endfor %}
    
                   </tbody>
             </table>
            <input type="submit" class="btn btn-success pull-right" value="保存">
        </form>
    
    </div>
    
    <hr>
    </body>
    </html>
    

    知识点补充:

    • selected属性
    带有预先选定的选项下来列表:
    		<option selected='selected'>aabb</option>
    定义和用法:
        selected 属性规定在页面加载时预先选定该选项。
        被预选的选项会显示在下拉列表的最前面的位置。
        也可以在页面加载后通过JavaScript设置selected属性。
    实例:
    <html>
    <body>
    
    <select>
      <option>Volvo</option>
      <option selected="selected">Saab</option>
      <option>Mercedes</option>
      <option>Audi</option>
    </select>
    
    </body>
    </html>
    这时多选框显示Saab  下拉后显示Volvo,Mercedes,Audi
    
    • textarea
    文本描述 textarea
    定义和用法:
        <textarea> 标签定义多行的文本输入控件。
        文本区可容纳无限量的文本,其中的文本默认字体是等宽字体。
        可以通过cols和rows属性来规定textarea的尺寸,不过更好的办法是使用css的height和width属性。
    实例:
    <textarea rows="3" cols="20">
    
    </textarea>
    
    • table标签
    HTML <table>标签
    <table border='1'>
        <tr>
        	<th>Month</th>
            <th>Savings</th>
        </tr>   
        <tr>
        	<td>January</td>
            <td>$100</td>
        </tr>
    </table>
    定义和用法:
        <table>标签定义HTML表格
        简单的HTML表格由table元素以及一个或多个tr、th或td元素组成。
        tr元素定义表格行,th元素定义表头,td元素定义表格单元
        
            
    
    • forloop

      forloop.counter    表示当前迭代数从1开始
      forloop.counter0   表示从0开始
      forloop.first      判断此循环是否是第一次循环
      
      
    点击学详,进入待编辑的班级:
    <td><a href='{% url 'study_decord' record.pk} %'>学详</a></td>
    
  • 相关阅读:
    UVA 11925 Generating Permutations 生成排列 (序列)
    UVA 1611 Crane 起重机 (子问题)
    UVA 11572 Unique snowflakes (滑窗)
    UVA 177 PaperFolding 折纸痕 (分形,递归)
    UVA 11491 Erasing and Winning 奖品的价值 (贪心)
    UVA1610 PartyGame 聚会游戏(细节题)
    UVA 1149 Bin Packing 装箱(贪心)
    topcpder SRM 664 div2 A,B,C BearCheats , BearPlays equalPiles , BearSorts (映射)
    UVA 1442 Cave 洞穴 (贪心+扫描)
    UVA 1609 Foul Play 不公平竞赛 (构(luan)造(gao)+递归)
  • 原文地址:https://www.cnblogs.com/Zhao159461/p/11087176.html
Copyright © 2011-2022 走看看