2013-09-01 71 views
0

我有像這樣定義的模型:命名爲 「名」 代理Django管理領域奇怪

class Country(models.Model): 
    """ A three taps country reference 
    """ 

    name = models.CharField(max_length=200) 
    code = models.CharField(max_length=10, unique=True) 

    class Meta: 
     app_label = 'crawler' 
     verbose_name_plural = 'Countries' 

    def __unicode__(self): 
     return " ".join([self.name, self.code]) 

在我的admin.py:

admin.site.register(Country) 

,並直接與Django管理登記。當我拉起一個國家的詳細信息視圖時,名稱字段不填寫實際名稱,但是是帶有+1 -1切換的數字字段。

http://cl.ly/image/0r39093b3a3S

如果我試圖保存更改而不觸及這一領域,它不能說這是必需的。到底是怎麼回事?此外,這是代碼,當我檢查表單元素:

<input class="hide input-mini suit-sortable" 
    id="id_name" maxlength="200" name="name" 
    type="number" value="United States"> 

因此,我認爲它的存在,但被隱藏出於某種原因,並寫成型號。

這實際上發生在我的應用程序中每個模型上的每個「名稱」字段。如果我將字段名稱更改爲「名稱」以外的內容,它可以正常工作。到底是怎麼回事?

+0

你可以顯示你的'admin.py'嗎? –

+0

增加了關於該問題的更多信息 –

+0

爲什麼你有'type =「number」'?它顯然不是一個數字字段。 –

回答

0

默認情況下,表單需要所有字段。要指定字段不是必需的,請設置required=False

這就是說你不能在models.py本身註冊模型。在models.py的同一目錄中創建一個文件admin.py

from app_name.models import Country 
from django.contrib import admin 

admin.site.register(Country) 
+0

目前還不清楚,但該行已經在我的admin.py中 –