2013-09-01 36 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中 –