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 に答える