2014年10月28日 星期二

Django 學習筆記

雖然說是學習筆記,但其實是完全照著參考資料中[1]實做一次而已,這邊只記下實做過程中,遭遇到的問題,作業系統為 CentOS 6.5,Python 版本為 2.7.8,Django 版本為 1.7。
  1. 建立 App 時,需要在 settings.py 裡的 INSTALL_APPS 裡加入新的 App INSTALLED_APPS = (
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'stores',    # 新的 App
    )

  2. Static Fils[3]
    在 settings.py 裡,預設有個 STATIC_URL 的全域變數,值為"/static/"。這裡的"/static/"是位於 App 的目錄下,而不是專案的目錄下。如果想要所有 App 共用同一個 static 的目錄,只要加入底下的設定就好。這邊是將"BASE_DIR/static"加到 STATICFILES_DIRS 中。
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, "static"),
    )

    STATIC_URL =
    '/static/'

  3. django unicode error on admin page[5]
    原本 model.py 裡的內容如下
    class Store(models.Model): 
        name = models.CharField(max_length=20
        notes = models.TextField(blank=True, default=''


        def __str__(self): 
            return self.name

    將 __str__ 改成 __unicode__ 後,再 admin 新增資料就可以使用中文。
    class Store(models.Model): 
        name = models.CharField(max_length=20
        notes = models.TextField(blank=True, default=''


        def __unicode__(self): 
            return self.name

    __str__ 這個函數其實我並不了解是什麼用途,原作者有解釋,不過我還是看不懂 XD












[1] uranusjr - Django Tutorial for Programmers @ iT邦幫忙
[2] caterpillar - Python Tutorial @ CodeData
[3] Managing static files (CSS, images)
[4] django-tutorial-for-programmers @ uranusjr's github
[5] django unicode error on admin page