モデルを追加してCategory
、初期値meal
を設定し、フィクスチャpersonal
を介して設定できます。ユーザーが存在しないカテゴリに入ると、新しいオブジェクトが作成されます。
編集:
Job
基本的にCategory
、 1 つでJob
はなく 2 つのモデルを作成ForeignKey
しCategory
ます。
class Category(models.Model):
name = models.CharField(max_length=50)
class Job(models.Model):
category= models.ForeignKey(Category)
自分でテーブルを作成する必要はありません。次の実行時に syncdb が処理します。
次に、フィクスチャを作成し、fixtures
アプリのディレクトリに配置します。これにより、次の 2 つのエントリが常に存在することが保証されます。
[
{
"model": "myapp.category",
"pk": 1,
"fields": {
"name": "meal"
}
},
{
"model": "myapp.category",
"pk": 2,
"fields": {
"name": "personal"
}
}
]
これらのエントリは、作成時にカテゴリ モデルの管理者から入力することもできます。次に、dumpdata を使用してデータをダンプできるので、手動で記述する必要はありません。
もちろん、新しいカテゴリ インスタンスを作成するためのビュー/フォーム ロジックを記述する必要があります。フォームはモデルModelForm
用のほぼ標準的なものである必要がJob
あり、さらに新しいカテゴリを入力するための追加フィールドが機能するはずです。したがって、考えなければならない唯一のことは、新しいエントリを作成することの検証です。ModelChoiceField
a のデフォルトではすべてのエントリが含まれるため、フォームは自動的に新しいエントリを取得します。