在我做的项目中有个选择省城市的选项,这两个字段的关系是一对多的关系
class Province(models.Model): # 省会
      name = models.CharField(max_length=30)

class City(models.Model): #城市
      name = models.CharField(max_length=30)
      province = models.ForeignKey(Province)

前台代码:
<html>
<head>
<link rel="stylesheet" type="text/css" href="/site_media/css/imgareaselect-default.css" />
 <script type="text/javascript" src="/site_media/scripts/jquery.min.js"></script>
 <script type="text/javascript" src="/site_media/scripts/jquery.imgareaselect.pack.js"></script>

</head>
        <form action="/addInfo/" method="post" name="" class="hform">
          <fieldset>
                        <p><label><span style="color:red">*</span>选择分类</label>
                          <select name="province" id="province">
                          <option value="">请选择分类</option>
                          {% for province in provinces %}
                          <option value="{{ province.id }}">{{ province.name }}</option>
                          {% endfor %}
                          </select>
                          </p>
                           <p><label<span style="color:red">*</span>选择子类</label>
              <select name="city" id="city">
                          </select>
                          </p>
                          <p><label><span style="color:red">*</span>标题</label>
              <input type="text" name="title" id="title">
                          </p>
        
                           <p><input type="submit" name="submit" value="提交" class="button"></p>
                          </fieldset>
             
          </form>

{% block js %}
        <script lang="javascript">

$("#province").change(function (){
                if($("#province").val() != ""){

$.getJSON("/getcity/", { category: $("#province").val() },
                function(data){
                 $("#city").empty();
                 $("#city").append("<option value=\"\">请选择子类</option>");
                 if(data.length!=0){
                          $.each(data,function(i,n){
                          $("#city").append("<option value="+i+">"+n+"</option>");
                          });
                        }
                        
                         });

}else{
                         $("#city").empty();
                }

});

$("form").submit(function() {
         
      if ($("#province").val() == "") {
             alert("请选择分类");
                 $("#province").focus();
         return false;
      }
           if ($("#city").val() == "") {
                 alert("请选择子类");
                 $("#city").focus();
        return false;
      }
        
    });

后台:
def cityinfo(request):
   provinces = Province.objects.all()
   return render_to_response("cityform.html",locals())
def getcity(request):
                provinceId = int(request.GET.get('category'))
                province = Province.objects.get(id=provinceId)

citys = City.objects.filter(province=province)

data = {}

for city in citys:
                        data[city.id] = city.name

return HttpResponse(simplejson.dumps(data))
urls.py
    (r'^province/$', views.cityinfo),
    (r'^getcity/$',views.getcity),

django Forgienkey字段 在前台用js做处理的更多相关文章

  1. django的model字段在保存的时候做预处理怎么办?

    django的model字段在保存的时候做预处理怎么办? 比如这个model: class Book(Model): publish_date = DateField() 但是在保存时,用户输入数据是 ...

  2. Octopus系列之如何让前台的js脚本变得灵活重用

    Octopus系列如何让前台的js脚本变得灵活,重用 方式1:ajax方式 方式2:form表单方式 面向对象的脚本封装 jQuery的封装 做Web开发的少不了前台Ajax的使用, 返回true:f ...

  3. h5 录音 自动生成proto Js语句 UglifyJS-- 对你的js做了什么 【原码笔记】-- protobuf.js 与 Long.js 【微信开发】-- 发送模板消息 能编程与会编程 vue2入坑随记(二) -- 自定义动态组件 微信上传图片

    得益于前辈的分享,做了一个h5录音的demo.效果图如下: 点击开始录音会先弹出确认框: 首次确认允许后,再次录音不需要再确认,但如果用户点击禁止,则无法录音: 点击发送 将录音内容发送到对话框中.点 ...

  4. JS 做时钟

    今天,给大家分享一个用JS做的时钟. <!DOCTYPE html><html> <head> <meta charset="utf-8" ...

  5. Django model字段类型清单

    转载:<Django model字段类型清单> Django 通过 models 实现数据库的创建.修改.删除等操作,本文为模型中一般常用的类型的清单,便于查询和使用: AutoField ...

  6. js调用.net后台事件、后台调用前台以及js调用服务器控件

    1. javaScript函数中执行C#代码中的函数: 方法一:间接触发后台代码 1.首先建立一个服务端控件按钮命名为btn1,双击进入后台将调用或处理的内容写入btn1_click中; 2.在前台写 ...

  7. AJAX部分---对比js做日期的下拉选择 和 ajax做三级联动;

    js做日期选择: 实现当前年份的前5后5年的日期选择 实现功能:年份和月份页面加载完成使用JS循环添加,天数根据月份的变化动态添加改变 扩展功能:天数可以根据闰年平年变化 <body> & ...

  8. socket.io+angular.js+express.js做个聊天应用(三)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/www19940501a/article/details/27590611 接着前面博客文章socke ...

  9. 前台的js对象数组传到后台处理。在前台把js对象数组转化为json字符串,在后台把json字符串解析为List<>

    前台的js对象数组传到后台处理.在前台把js对象数组转化为json字符串,在后台把json字符串解析为List<>

随机推荐

  1. Ajax清除浏览器js、css、图片缓存的方法

    做东东时都是把图片在服务器的地址存放在数据库里面,然后到浏览器中显示,但是后来发现了两个问题. 第一:为了安全起见,js是无法读取本地的图片的,不然你写一个js,岂不是可以获取任何人电脑里面的文件了. ...

  2. 第一部分 CLR基础:第2章 生成、打包、部署和管理应用程序及类型

    2.1.NET Framework部署目标 Microsoft Windows多年来因不稳定和复杂而口碑不佳.造成的原因:1.应用程序都使用来自微软和厂商的动态链接库(dynamic-link lib ...

  3. C# 判断一字符串是否为合法数字(正则表达式)

    判断一个字符串是否为合法整数(不限制长度) public static bool IsInteger(string s) { string pattern = @"^\d*$"; ...

  4. (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?

    js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别? 转自:http://www.jb51.net/article/75089.htm ...

  5. SLF4J日志门面

    SLF4J官网:http://www.slf4j.org/ SLF4J的作用通俗点讲,就是可以让我们的项目以最小的代价更换不同的日志系统.无需修改代码,只需要添加.删除相应的jar包和配置文件. 1. ...

  6. java初探native

    最近碰见一个java中一个native关键字,不知道是干什么的,如下: public native String FileName(String strURL);     static{        ...

  7. 学一点Git--20分钟git快速上手 [Neil]

    From: http://www.cnblogs.com/shuidao/p/3535299.html (图片已修复)在Git如日中天的今天,不懂git都不好意思跟人说自己是程序猿.你是不是早就跃跃欲 ...

  8. 9.css背景

    这节也是关于盒模型的扩展,而我个人喜欢把盒模型想象成图画.元素的尺寸调整就是画布大小的调整,边框的设置就是画框的镶嵌.但是,作为一个最终要将画作展现到美术馆(网页)的艺术家来说,仅仅是这样还是不够的, ...

  9. LC.exe exited with code -1

    昨天从win8.1升级到win10之后, 一切还算顺利, 就是升级时间比较长. 但是快下班的时候 遇到一个问题, 是之前在win8.1上没遇到的, 首先代码win8.1 vs2013 上跑的时候一切正 ...

  10. 迭代器、泛型和增强For

    Iterator hasNext  next Iterator 迭代器 Collection提供了一个遍历集合的通用方式,迭代器(Iterator). 获取迭代器的方式是使用Collection定义的 ...