0

我有一个这样定义的模型:

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">

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

这实际上发生在我的应用程序中每个模型上的每个“名称”字段中。如果我将字段名称更改为“名称”以外的名称,则可以正常工作。到底是怎么回事?

4

1 回答 1

0

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

话虽如此,您不能在其models.py自身中注册模型。admin.py在有models.py.

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

admin.site.register(Country)
于 2013-09-01T06:58:07.667 回答