crm
# 给modelform使用的
    tutor = models.ForeignKey(verbose_name='班主任', to='UserInfo', related_name='classes',limit_choices_to={"depart__in":[1004,1005]},on_delete=models.CASCADE)
    # limit_choices_to={"depart__in":[1004,1005]}
        modelform做渲染时,使用筛选后的数据。

# 显示choices的值
    record_choices = (('checked', "已签到"),)
    record = models.CharField("上课纪录", choices=record_choices, default="checked", max_length=64)

def show_gender(self,obj=None,is_header=False):
        if is_header:
            return '性别'
        return obj.get_gender_display()
        
        
# CSS3 ::selection 选择器    
# 使被选中的文本成为红色:        
::selection
{
color:#ff0000;
}

# 获取完整url,包括?后的请求信息
request.get_full_path_info()
# 更新update操作,当filter(xx=oo)的xx不确定时,可用字典传参解决。
d = {}
key_id = request.POST.get('name')
val = request.POST.get('val')
key,id = key_id.split('_')
d[key]=val
o = StudyRecord.objects.filter(pk=id).update(**d)

#-==============highcharts插件以统计图的方式展示学生成绩=-=-=-=-=-=-=-=-=-

<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css">
<script src="/static/js/jquery-1.12.4.min.js"></script>
<script src="/static/chart/highcharts.js"></script>
<style>
span {
padding: 2px 5px;
margin: 2px;
border: 1px solid deepskyblue;
}
</style> <div id="container" style="width:600px;height:400px" class="col-md-offset-1"></div>
<script>
$(".check_chart").click(function () { $.ajax({
url: "",
type: "get",
data: {
sid: $(this).attr("sid"),
cid: $(this).attr("cid")
},
success: function (data) { // 显示柱状图
var chart = Highcharts.chart('container', {
chart: {
type: 'column'
},
title: {
text: '查看成绩'
},
subtitle: {
{#text: '数据截止 2017-03,来源: <a href="https://en.wikipedia.org/wiki/List_of_cities_proper_by_population">Wikipedia</a>'#}
},
xAxis: {
type: 'category',
labels: {
rotation: -45 // 设置轴标签旋转角度
}
},
yAxis: {
min: 0,
title: {
text: '分数'
}
},
legend: {
enabled: false
},
tooltip: {
pointFormat: '分数: <b>{point.y:.2f}</b>'
},
series: [{
name: '总人口',
data: data,
dataLabels: {
enabled: true,
rotation: -40,
color: '#fff29f',
align: 'right',
format: '{point.y:.1f}', // :.1f 为保留 1 位小数
y: 10
}
}]
});
}
})
})
</script>

# -=-=-=-=-=-=判断是否是多对多字段-=-=-=-=-
    filter_field_obj = self.config.model._meta.get_field(filter_field)  # 字段对象
    # print(type(filter_field_obj))
    if isinstance(filter_field_obj,ManyToManyField) or isinstance(filter_field_obj,ForeignKey):
        data_list = filter_field_obj.remote_field.model.objects.all()       # 获取外键表数据

# =-=-=-=-=-=-=-根据model不同字段渲染table内容=-=-=-=-=-=-=-

    if isinstance(field_obj,ManyToManyField):
to_objlist = getattr(obj,field).all()
t=[]
for to_obj in to_objlist:
t.append('<span class="author pull-left">%s</span>'%str(to_obj))
val = mark_safe(''.join(t))
else:
if field_obj.choices:
val = getattr(obj, 'get_'+field+'_display')
else:
val = getattr(obj,field)
# 检测是否指定编辑跳转字段
if field in self.config.list_display_links:
val = mark_safe('<a href="%s%s">%s</a>'%(self.config.get_change_url(obj),par,val))

crm 简约笔记的更多相关文章

  1. SAP CRM 项目笔记(一) SOW(工作说明书)讨论

    前记 前两天在搜索资料时,看到一个网友在博客里面记录下了自己参于项目中的所有笔记.我觉得这个想法很不错,所以决定开笔记录下SAP CRM整个项目的实施和开发过程. 之前参加集团的SAP ERP(FI/ ...

  2. Dynamic CRM 2013学习笔记 系列汇总

    这里列出所有 Dynamic CRM 2013学习笔记 系列文章,方便大家查阅.有任何建议.意见.需要,欢迎大家提交评论一起讨论. 本文原文地址: Dynamic CRM 2013学习笔记 系列汇总 ...

  3. Dynamic CRM 2013学习笔记(一)插件输入实体参数解析

      1. 问题描述 最近新建了一个post事件的插件,传入的参数处理如下: 1: if (context.InputParameters.Contains("Target") &a ...

  4. Dynamic CRM 2013学习笔记(二)插件基本用法及调试

      插件是可与 Microsoft Dynamics CRM 2013 和 Microsoft Dynamics CRM Online 集成的自定义业务逻辑(代码),用于修改或增加平台的标准行为.也可 ...

  5. Dynamic CRM 2013学习笔记(四)单据编号及插件批量注册工具

    基本上每个实体form上都会有单据编号,而且不同的实体编号要求还不太一样,这时就需要一个通用的单据编号插件,可配置以应对不同的需求. 下面简单介绍下实现步骤: 1. 创建二个实体,以保存各实体所要求的 ...

  6. Dynamic CRM 2013学习笔记(五)禁止修改、删除审批通过后的单据

    审批通过后的单据,一般要对其进行控制,不能修改,不能添加,删除等,下面分别介绍下如何实现: 一. 禁止修改: 1. 主表控制,如果页面上审批状态为审批中或审批通过,就把整个页面都disable掉 1: ...

  7. Dynamic CRM 2013学习笔记(十二)实现子表合计(汇总,求和)功能的通用插件

    上一篇 Dynamic CRM 2013学习笔记(十一)利用Javascript实现子表合计(汇总,求和)功能 , 介绍了如何用js来实现子表合计功能,这种方法要求在各个表单上添加js方法,如果有很多 ...

  8. Dynamic CRM 2013学习笔记(十三)附件上传 / 上传附件

    上传附件可能是CRM里比较常用的一个需求了,本文将介绍如何在CRM里实现附件的上传.显示及下载.包括以下几个步骤: 附件上传的web页面 附件显示及下载的附件实体 调用上传web页面的JS文件 实体上 ...

  9. Dynamic CRM 2013学习笔记(十四)复制/克隆记录

    经常有这样的需求,一个单据上有太多要填写的内容,有时还关联多个子单据,客户不想一个一个地填写,他们想从已有的单据上复制数据,克隆成一条新的记录.本文将介绍如何克隆一条记录,包括它的子单据以生成一条新的 ...

随机推荐

  1. hdu1233 还是畅通工程 基础最小生成树

    //克鲁斯卡尔 #include<iostream> #include<algorithm> using namespace std; ; struct node { int ...

  2. Python基础知识(2)

    1:if比较运算符.and.or >=:大于或者等于 <=:小于或者等于 ==:等于 !=:不等于  (<>:也是不等于,在Python2中可用.Python3中无法使用) a ...

  3. visual studio各版本下载

    软件包括以下几种: cn_visual_studio_2010_ultimate_x86_dvd_532347.part1.rar cn_visual_studio_2010_ultimate_x86 ...

  4. LookupError: unknown encoding: idna 的处理方法

    写了一个脚本,想把它打包成exe文件,在python编译器中运行正常,但是打包成.exe文件运行报错 LookupError: unknown encoding: idna 找遍资料终于找到了解决方法 ...

  5. [已读]HTML5与CSS3权威指南第二版(下)

    去年下半年前公司给买的(老付对我们确实蛮好的),一人挑一本,我当时一定是秀逗了.看的时候就发现,这本书的内容过时严重,即便它是新出不久的第.二.版.其他没什么说的,总之,不推荐看.

  6. 使用VMwaver 克隆CentOS 6.9网卡配置报错

    报错信息: 克隆完成之后,使用的是NAT模式,进入系统之后有IP地址也可以ping外网,但是没有ifcfg-eth0这个文件,使用setup命令配置网卡时报以下错误: 待解决-

  7. qconshanghai2014

    主题演讲 容器化的云——CohesiveFT首席技术官 Chris Swan 建设强大的工程师文化——Spotify工程总监 Kevin Goldsmith 软件项目变更的管理和生存之道——jClar ...

  8. Windows API函数大全二

    4. API之打印函数 AbortDoc 取消一份文档的打印 AbortPrinter 删除与一台打印机关联在一起的缓冲文件 AddForm 为打印机的表单列表添加一个新表单 AddJob 用于获取一 ...

  9. hdu1513 Palindrome

    思路: dp+滚动数组. 实现: #include <iostream> #include <cstdio> #include <string> #include ...

  10. checkbox:click事件触发span元素内容改变

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...