發表文章

目前顯示的是 4月, 2018的文章

Blank 與 Null的區別

Django models 提供了兩個選項null與blank,基本上兩者幾乎差不多,但仍有點小差異 1.null主要用在資料庫端,告訴資料庫是否可以接受null 2.blank主要用在驗證資料,在form的驗證上,當呼叫form.is_valid()時驗證 3.若是使用null=true在CharField或是TextField上,則會有空字串及None來代表沒東西,Django一般使用空字串代表沒東西,建議使用上不要使用null=true 4.所以要使用nullable的欄位 class Person(models.Model):        bio=models.TextField(max_length=500,blank=true)  #不要加上null=true

使用django 內建的login及loginout系統

1.先確定設定檔setttings INSTALLED_APPS裡面是否有django.contrib.auth及MIDDLEWARE_CLASSES設定是否正確 2.若是使用startproject建立的專案,則預設會包含 3.先行建立管理者使用 python manage.py createsuperuser 4.建立url routes from django.contrib.auth import views as auth_view urlpatterns=[... url(r'^login/$',auth_view.login,name='login'), url(r'^logout/$',auth_view.login,name='logout'), ] 5.建立範本檔 預設會讀registration/login.htm 6.客製化login view 可以在 url routes裡面傳幾個參數給login來客製化 範本檔位置 url(r'^login/$',auth_views.login,{'template_name':'core/login.htm'},name='login') 另外也可以傳客製化form使用{'authentication_form':'core/form.py'} 7.更改登錄成功轉址 在settings.py裡面加入 LOGIN_REDIRECT_URL='home' (預設值為/accounts/profile) 8.登出 範本檔預設讀registration/logged_out.html 9.使用next_page參數設定轉址 url(r'^logout/$',auth_views.logout,{'next_page':'/'},name='logout')