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