又遇 django 中文編碼問題

來源:互聯網
上載者:User

在編寫model時,如下:

  1. class Book(models.Model):
  2.     title=models.CharField(max_length=100)
  3.     authors=models.ManyToManyField(Author)
  4.     publisher=models.ForeignKey(Publisher)
  5.     publication_date =models.DateField()
  6.     def __str__(self):
  7.         return self.title;

admin介面中加入book 輸入中文

 

導致錯誤:Caught an exception while rendering: 'ascii' codec can't encode characters in position 4-10: ordinal not in range(128)

其中Title一項如果輸入英文就不會出錯,原因分析,

  1. def __str__(self):
  2.         return self.title;

傳回值需要編碼轉換如下:

  1. 原因分析,def __str__(self):
  2.         return self.title.encode('utf-8');

就可以輸入中文。

其實在django中,除了檔案(source & templates)的編碼要儲存為utf-8外,檔案本身的類型也要為utf-8,因為django的核心模組就是utf-8

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.