2012-03-27 41 views
0

我試圖在包含unicode字符串的數據庫中實現CRUD。這裏是模型:Django中的Unicode錯誤

from django.db import models 


class Category(models.Model): 
    cat_name = models.CharField(max_length=100, verbose_name="Category Name") 

    def __unicode__(self): 
     return self.cat_name 

class Translation(models.Model): 
     english_term = models.TextField(verbose_name="English Term") 
     bangla_term = models.TextField(verbose_name="Bangla Term") 
     bangla_variant = models.TextField(verbose_name="Variant") 
     parts_of_speech = models.TextField(verbose_name="Parts of Speech") 
     category = models.ForeignKey(Category, verbose_name="Category") 

     def __unicode__(self): 
      return self.english_term 

Django默認創建數據庫和表與拉丁語swedish-ci什麼的。我手動將數據庫和錶轉換爲utf8-unicode-ci(我道歉,我知道我的排序規則名稱錯誤)。

我已經在我的管理區域中註冊了模型。當我嘗試添加任何條目到模型中時,出現錯誤:

Warning at /admin/glossary/category/add/ 

Incorrect string value: '\xE0\xA6\x97\xE0\xA6\xA8...' for column 'cat_name' at row 1 

任何幫助?在分類模型

問候

回答

1

您可能想要使用utf8編碼重新創建數據庫,或在客戶端和服務器端檢查已配置的編碼。 Django不創建數據庫,您有責任創建一個並在Django設置中爲Django連接設置正確的參數。唯一的例外是sqlite3後端,它始終使用utf8。

+0

重新創建數據庫的工作。雖然我手動將數據庫轉換爲unicode之前:s – masnun 2012-03-27 12:10:34

0

嘗試

def __unicode__(self): 
    return u'%s' % self.cat_name 

+0

仍然一樣:( – masnun 2012-03-27 12:07:32