2012-09-19 55 views
0

我有一個Django的博客,象這樣一個「郵報」的模式:Django Admin:爲什麼有些字段顯示爲空?

class Post(models.Model): 
    title = models.CharField(max_length=1000) 
    author = models.CharField(max_length=200) 
    pub_date = models.DateTimeField('date published') 
    text = models.TextField(max_length=10000) 
    CATEGORY_CHOICES = (
     ('breakfast','Breakfast'), 
     ('brunch','Brunch'), 
     ... 
    ) 
    category = models.CharField(max_length=100,blank=True,choices=CATEGORY_CHOICES) 

我已經上傳了一堆「郵報」的對象(與上述所有領域的已完成的)到我的數據庫使用python manage.py loaddata fixturename.json命令。但是,當我登錄到管理站點以修改對象時,我上傳的「類別」字段的值不會顯示爲在字段的下拉列表中預先選擇的值。爲什麼是這樣?有什麼方法可以解決它?

編輯:這是我的JSON夾具文件片段:

{ 
    "pk": 34, 
    "model": "blogs.post", 
    "fields": { 
     "category": "breakfast", 
     "author": "jennaboller", 
     "text": "I have to say, my favorite weekend breakfast is blah blah blah", 
     "title": "Corned Beef Hash & Eggs: My Favorite Weekend Breakfast", 
     "pub_date": "2011-01-25 05:05:37" 
    } 
+0

您確定類別字段中的數據對應於原始值,即每個CHOICES元組中的第一個元素?當你在shell中獲得一個Post實例並執行'print post.category'時,你會看到什麼? –

+0

@DanielRoseman,如果我使用'print'我會得到'早餐'。如果我只是使用'post.category',我會得到'u'breakfast''。但我已經嘗試將CHOICE tupple更改爲unicode值,並沒有幫助。 – GChorn

+0

您可以向我們展示一個摘錄,即您的'fixturename.json'中的單個'Post'對象實例嗎?否則,恐怕很難幫助你。但是,您的問題可能與'category'字段中的屬性'blank = True'有關。另外,你的'PostAdmin'管理員配置類是什麼樣的? – pemistahl

回答

0

根據我在我的問題最後評論說,這個問題是最有可能涉及到屬性blank=True中的categoryPost模型。但是,由於您爲示例模型實例指定了一個特定類別(早餐),它也應該顯示在管理配置中。

此行爲的原因可能是Django不認爲CharField中的blank屬性設置了choices屬性,因爲它在這裏沒有意義。如果您希望能夠說一個Post實例不屬於特定類別,那麼在CATEGORY_CHOICES中包含另一個選項(如('none', 'None'))可能會更好。也許這也可能是Django的管理模塊中的一個錯誤,但我不知道這一點。

相關問題