Django一些常用参数的设置


在form表单里面   autocomplete="off"  浏览器输入框关闭自动提示

在ajax里面要发送文件数据需要实例化一个FormData()对象,

还需要设置

processData:false,     //告诉jQuery不要处理我的数据

contentType:false,      //告诉jQuery不要设置content类型

实现示例代码:

 1   //用户点击注册触发ajax  2     $("#reg-btn").click(function () {  3         //获取用户填写的注册数据,向后端发送ajax请求  4         //发送文件数据时必须 用FormData()的对象  5         var formData=new FormData();  6         formData.append('username',$("#id_username").val());  7         formData.append('password',$("#id_password").val());  8         formData.append('re_password',$("#id_re_password").val());  9         formData.append('email',$("#id_email").val()); 10         formData.append('profile',$("#id_profile")[0].files[0]); 11         formData.append('csrfmiddlewaretoken',$("[name='csrfmiddlewaretoken']").val()); 12  $.ajax({ 13             url:'/register/', 14             type:'post', 15             processData:false,  //告诉jQuery不要处理我的数据 16             contentType:false,  //告诉jQuery不要设置content类型 17  data:formData, 18  success:function (data) { 19                 if(data.status){    //如果status有值 登录失败 显示错误信息 20  $.each(data.msg,function (k,v) { 21                        //遍历获取错误信息,并按id设置span标签的内容 22                         $('#id_'+k).next('span').text(v[0]).parent().parent().addClass('has-error'); 23  }) 24  } 25                 else { 26                     location.href=data.msg;  //如果没有错误就跳转到指定页面 27  } 28  } 29  }) 30     });

 如果想打印orm转换过程中的sql,需要在settings中进行如下配置:

 1 LOGGING = {  2     'version': 1,  3     'disable_existing_loggers': False,  4     'handlers': {  5         'console':{  6             'level':'DEBUG',  7             'class':'logging.StreamHandler',  8  },  9  }, 10     'loggers': { 11         'django.db.backends': { 12             'handlers': ['console'], 13             'propagate': True, 14             'level':'DEBUG', 15  }, 16  } 17 }  

 Django框架的admin后台页面如果想要实现汉化需要设置的参数:

在setting文件里面配置:

1 LANGUAGE_CODE = 'zh-hans'

能实现普通管理页面效果汉化,但是如果要使数据库类或者对象属性也实现汉化:

 1 class AuthorDetail(models.Model):  2 
 3     nid = models.AutoField(primary_key=True)  4     birthday=models.DateField(verbose_name="生日")  5     telephone=models.BigIntegerField(verbose_name="手机")  6     addr=models.CharField( max_length=64,verbose_name="地址")  7 
 8     class Meta: 9 verbose_name = "作者信息"
10         verbose_name_plural = verbose_name 11 
12     def __str__(self): 13         return '{}-{}'.format(self.pk,self.telephone)

完成上述几部参数设置后,就完全汉化可用了

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

django后台管理页面如果想修改自定义字段:

可以在admin文件里面配置

 1 from django.utils.safestring import mark_safe  #让Django不要转移字符
 2 class BookConfig(admin.ModelAdmin):  3     def del_book(self):  4         return mark_safe("<a href=''>删除</a>")   #返回的结果作为字段给 list_display使用 mark_safe让django别转义字符串
 5     list_display = ["pk","title","publishDate","price","publish",del_book]   #需要显示的对象属性
 6     list_display_links =["title"]                   #把哪个标签设置为链接入口
 7     list_filter = ["publish","authors"]             #按照规定字段筛选过滤
 8     search_fields = ["title","price","publish__name"]     #这里面的字段也是可以跨表找字段的 按照规定字段模糊匹配检索
 9 
10     def change_price(self,request,queryset):     #自定义批处理函数
11         queryset.update(price=88)                 #更新价格为88
12     change_price.short_description = "价格批量初始化"
13     actions = [change_price,]                 #添加到actions里面去
14 
15 admin.site.register(Book,BookConfig)

 Admin的实现流程:

1.启动admin 在程序启动后会扫描对应的方法,去执行加载

1 def autodiscover(): 2     autodiscover_modules('admin', register_to=site)

 所谓聚合函数:就是在不分组的情况下进行统计

ORM

关键点:1.queryset对象.annotate

    2.annotate进行分组统计 按照select (相当于values)的字段进行group by

    3.annotate返回值依旧是queryset对象,增加了分组统计之后的键值对

2.在admin文件里面注册模块对象

 

 1 class AuthorConfig(admin.ModelAdmin):  2     def author_del(self,obj):  3         return mark_safe("<a href=''>删除</a>")  4 
 5     list_display = ["pk","name","age","authorDetail","author_del"]  6     list_display_links = ["name"]  7     list_filter = ["age"]  8 
 9 
10 admin.site.register(Author,AuthorConfig) 11 admin.site.register(AuthorDetail) 12 
13 class BookConfig(admin.ModelAdmin): 14     def del_book(self): 15         return mark_safe("<a href=''>删除</a>")   #返回的结果作为字段给 list_display使用 mark_safe让django别转义字符串
16     list_display = ["pk","title","publishDate","price","publish",del_book]   #需要显示的对象属性
17     list_display_links =["title"]                   #把哪个标签设置为链接入口
18     list_filter = ["publish","authors"]             #按照规定字段筛选过滤
19     search_fields = ["title","price","publish__name"]     #这里面的字段也是可以跨表找字段的 按照规定字段模糊匹配检索
20 
21     def change_price(self,request,queryset):     #自定义批处理函数
22         queryset.update(price=88)                 #更新价格为88
23     change_price.short_description = "价格批量初始化"
24     actions = [change_price,]                 #添加到actions里面去
25 
26 admin.site.register(Book,BookConfig) 27 admin.site.register(Publish)

 

3.分配urls路径地址,在urls文件里面完成对应关系:

有一级分配与二级分配:

 1 from django.conf.urls import url  2 from django.contrib import admin  3 from apk import views  4 from django.shortcuts import HttpResponse  5 def test1(request):  6     return HttpResponse("test1")  7 
 8 def add_list(request):  9     return HttpResponse("add_test1") 10 
11 def del_list(request,id): 12     print(id) 13     return HttpResponse("del_test1") 14 
15 def change(request,id): 16     return HttpResponse("change_test1") 17 
18 def show_list(request): 19     return HttpResponse("show_test1") 20 
21 def functions(): 22     fun_list=[] 23     fun_list.append(url(r'^$',show_list)) 24     fun_list.append(url(r'^add/$', add_list)) 25     fun_list.append(url(r'^(\d+)/del/$', del_list)) 26     fun_list.append(url(r'^(\d+)/change/$',change)) 27     return fun_list 28 
29 def get_urls(): 30     print(admin.site._registry) 31     temp=[] 32 
33     for model,admin_class_obj in admin.site._registry.items(): #对注册的组件键与值进行迭代,得到类对象和实例对象
34         app_name=model._meta.app_label      #app名字
35         model_name=model._meta.model_name   #模型对应名字
36         temp.append(url(r'^{0}/{1}/'.format(app_name,model_name),(functions(),None,None)),) 37 
38     return temp 39 urlpatterns = [ 40     url(r'^admin/', admin.site.urls), 41 
42     url(r'^index/',views.show), 43 
44     url(r'^kevin/',(get_urls(),None,None)), 45 ]

 在url对应关系里,将视图函数变为元组,按照固定格式去实现


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM