@csrf_exempt
def new_project_detail(request):
    if 'project_name' not in request.POST or 'project_position' not in request.POST or 'interest_rate' not in \
            request.POST or 'financing_amount' not in request.POST or 'deadline' not in request.POST or \
                    'repayment_time' not in request.POST or 'project_detail' not in request.POST or 'project_type' \
            not in request.POST or 'bonding_company' not in request.POST:
        return json_response(False, '050002', 'lack of parameter')
    try:
        if store_data(request):
            return json_response(True)
        else:
            return json_response(False, '020005', '数据库错误')
    except ValueError:
        return json_response(False, '020002', '数据字段错误')
    except ProjectDetail.DoesNotExist:
        return json_response(False, '020003', '信息不存在')
    except Exception, e:
        print e
        return json_response(False, '020004', e)

@transaction.commit_manually
def store_data(request):
    try:
        project = ProjectDetail(project_name=request.POST.get("project_name"),
                                project_position=request.POST.get("project_position"),
                                interest_rate=request.POST.get("interest_rate"),
                                financing_amount=request.POST.get("financing_amount"),
                                deadline=request.POST.get("deadline"),
                                repayment_time=request.POST.get("repayment_time"),
                                project_detail=request.POST.get("project_detail"),
                                project_type=request.POST.get("project_type"))
        project.save()
        project.project_NO = request.POST.get("project_NO", datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S"))
        project.project_purpose = request.POST.get("project_purpose", None)
        if 'company_id' in request.POST:
            company = Company.objects.get(id=request.POST.get("company_id"))
            financial_status = CompanyFinancialStatus.objects.get(company=company)
            project.company = company
            project.financial_status = financial_status

bonding_company = BondingCompany.objects.get(id=request.POST.get("bonding_company"))
        project.bonding_company.add(bonding_company)
        project.status = PROJECT_STATUS_INIT
        project.project_end_type = request.POST.get("project_end_type", PROJECT_END_TYPE_BY_AMOUNT)
        project.save()
        transaction.commit()
        return True
    except Company.DoesNotExist:
        transaction.rollback()
        return False
    except CompanyFinancialStatus.DoesNotExist:
        transaction.rollback()
        return False
    except BondingCompany.DoesNotExist:
        transaction.rollback()
        return False
    except Exception, e:
        print e
        transaction.rollback()
        return False

纪念一下第一次写的django代码的更多相关文章

  1. Java第一次写的流布局图形界面,留个纪念

    package jisuanqi; import java.awt.*; public class MyFrame extends Frame{ //继承Frame类 public MyFrame() ...

  2. 第一次写博客Poj1044

    Date bugs Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3005   Accepted: 889 Descript ...

  3. 第一次写python爬虫

    花了4天终于把写完了把国内的几个漏洞平台爬完了,第一次写py,之前一直都在说学习,然后这周任务是把国内的漏洞信息爬取一下.花了1天学PY,剩下的1天一个.期间学习到了很多.总结如下: ======== ...

  4. 写漂亮C#代码的小技巧

    第一次写博客,不知道代码用什么编辑,直接截图了,哈哈哈.... 我自己不喜欢看随便复制粘贴过来一堆代码的博客,所以,用些简单点的例子吧,希望对大家有帮助...  ------------------- ...

  5. 第一次写博客,关于前端开发deMVC在js中的应用

    对前端MVC MVC分别是model.view.controller的缩写,模型.视图.控制器.这些更加偏向于后台,在以前MVC是只属于后台的.当然随着技术的进步,前端的大牛们将后台的一些东西应用于前 ...

  6. HDU 2064 菜鸡第一次写博客

    果然集训就是学长学姐天天传授水铜的动态规划和搜索,今天讲DP由于困意加上面瘫学长"听不懂就是你不行"的呵呵传授,全程梦游.最后面对连入门都算不上的几道动态规划,我的内心一片宁静,甚 ...

  7. 今天我自己第一次写了一个Windows批处理bat脚本,一起学习一下吧。

    今天我自己第一次写了一个Windows批处理bat脚本,备注一下 事情原由:自己使用Java开发了一个加解密的工具.但是当把工具给别人使用的时候,别人还需要把代码编译打包, 然后还需要看一下代码里面的 ...

  8. 不写1行代码,在Mac上体验ASP.NET 5的最简单方法

    昨天微软发布了ASP.NET 5 beta2(详见ASP.NET 5 Beta2 发布),对ASP.NET 5的好奇心又被激发了. 今天下午在Mac OS X上体验了一下ASP.NET 5,而且借助Y ...

  9. 只写104行代码!在nopCommerce中如何实现自动生成网站地图

    表告诉我说你不知道nopCommerce是什么.它是目前.NET中最流行的完全开源网上商城,由俄罗斯的团队在2008年开始立项一直开发到现在已经是3.3版本了.代码目前托管在codeplex上,有兴趣 ...

随机推荐

  1. [转]iOS多线程编程之NSThread的使用

    1.简介: 1.1 iOS有三种多线程编程的技术,分别是: 1..NSThread 2.Cocoa NSOperation (iOS多线程编程之NSOperation和NSOperationQueue ...

  2. 国内外主流BI厂商对比

    BI(Business Intelligence),即商业智能或者商务智能,它是一套完整的解决方案,用来将企业中现有的数据进行有效的整合,快速准确的提供报表并提出决策依据,帮助企业做出明智的业务经营决 ...

  3. 宣布发布 Windows Azure 导入/导出服务的预览版以及 Web 和移动解决方案场景的若干增强功能

    客户评估基于云的存储解决方案时,面临的挑战之一是以经济高效.安全快速的方式从 Blob 存储区移进和移出大量数据.今天,我们很高兴地宣布发布 Windows Azure 导入/导出的预览版,这款新服务 ...

  4. BZOJ 2463 谁能赢呢? (博弈论)

    题解:简单博弈论 #include <cstdio> int main(){ int n; while(scanf("%d",&n),n!=0) if (n&a ...

  5. Cloud Foundry warden container 安全性探讨

    本文将从Cloud Foundry中warden container的几个方面探讨warden container的安全性. 1. warden container互訪 1.1.  互訪原理· 在Cl ...

  6. linux6.2安装mysql

    今天安装了一天的mysql,刚开始没想到会这么长时间,也和自己的基础不好有关,现在来说一下我的安装过程. 先说环境:rhel6.2 mysql5.1 在linux中,可能默认已经安装了一个mysql- ...

  7. Ext JS学习第九天 Ext基础之 扩展原生的javascript对象

    此文来记录学习笔记: •Ext对于原生的javascript对象进行了一系列的扩展,我们把他们掌握好,更能深刻的体会Ext的架构,从而对我们的web开发更好的服务, 源码位置,我们可以从开发包的这个位 ...

  8. MD5算法【计算文件和字符串的MD5值】

    1. MD5算法是一种散列(hash)算法(摘要算法,指纹算法),不是一种加密算法(易错).任何长度的任意内容都可以用MD5计算出散列值.MD5的前身:MD2.MD3.MD4.介绍工具:CalcMD5 ...

  9. STL之stack(栈)

    栈(statck)这种数据结构在计算机中是相当出名的.栈中的数据是先进后出的(First In Last Out, FILO).栈只有一个出口,允许新增元素(只能在栈顶上增加).移出元素(只能移出栈顶 ...

  10. thinkphp第二天

    1.使用print_r();打印数组的时候最好使用<pre>标签,可以是数组表现的更加直观. pre 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符.而文本 ...