2012-01-27 22 views
2

私は、フォームの初期値となる(例えばPerson.objects.get(pk=1))私は既に持っているPersonオブジェクトを置くことができますどのように単純なモデルDjango ModelListに初期オブジェクトを設定する方法は?

class Person(models.Model): 
    name = models.CharField(max_length=25) 
    surname = models.CharField(max_length=25) 
    birth_date = models.DateField() 
    ... 

と簡単なのModelForm

class PersonForm(ModelForm): 
class Meta: 
    model = Person 

を作成しました?私は、ドキュメントからこのオブジェクト

+0

あなただけのフォームをバインドする必要があります初期値として表示する必要のあるオブジェクトのインスタンスまたはコピー(例:https://docs.djangoproject.com/en/dev/topics/forms/modelforms/)にコピーします。保存している間にオブジェクトの新しいインスタンスを作成し、保存されたインスタンスを編集しないようにしてください。 JavaScriptを使用して、ホバー上のフォーム入力の値をリセットして、ユーザーがプリセット値を削除する必要はありません。 – Priyeshj

答えて

5

を編集する必要があります。あなたのケースで非常に

# Creating a form to add an article. 
>>> form = ArticleForm() 

# Creating a form to change an existing article. 
>>> article = Article.objects.get(pk=1) 
>>> form = ArticleForm(instance=article) 

、あなたのviews.pyに:

person = Person.objects.get(pk=1) 
form = PersonForm(instance=person) 

https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#modelform

関連する問題