名为“name”的Django Admin字段行为奇怪

时间:2013-09-01 00:16:41

标签: python django django-admin

我有一个如此定义的模型:

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 admin注册。当我拉出一个国家/地区的详细信息视图时,名称字段不会填写实际名称,但是是一个带有+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">

所以我看到它存在,但由于某种原因被隐藏,并写为类型号。

这实际上发生在每个&#34;名称&#34;我的应用程序中每个模型上的字段。如果我将字段名称更改为&#34; name&#34;它工作正常。发生了什么事?

1 个答案:

答案 0 :(得分:0)

默认情况下,表单需要所有字段。要指定字段不是必需的,请设置required=False

话虽如此,你无法在models.py本身注册模型。在admin.py

的同一目录中创建文件models.py
from app_name.models import Country
from django.contrib import admin

admin.site.register(Country)