2016-05-29 2 views
3

私は、フォーム読み込み時にModelChoiceField djangoのオプションのデフォルト値を表示する方法は? html出力として

class Person(forms.Form): 

    person = forms.ModelChoiceField(queryset=Person.objects.filter(is_active=True).order_by('id'), required=False) 
    age = forms.IntegerField(min_value=18, max_value=99, required=False) 

を使用してModelChoiceFieldを作成しようとしていたリターンは

<option value="1">Person object</option> 

今、私はページをロードする際nameまたはidによりModelChoiceFieldのデフォルト値を表示したいです。例:

ユーザーが希望しない場合は、別のユーザーを選択できます。どうやってやるの?

答えて

2

あなたは__unicode__法(または__str__のpython3の場合)を変更する必要があるので、それはあなたがあなたのためのデフォルト値を提供するために、必要以上に人物オブジェクトhttps://docs.djangoproject.com/en/1.9/ref/models/instances/#str

class Person: 
    ... # your fields 
    def __unicode__(self): 
     return self.name 

の名前を返しますまず第一にhttps://docs.djangoproject.com/en/1.9/ref/models/fields/#default

場を形成します
person = forms.ModelChoiceField(queryset=Person.objects.filter(is_active=True).order_by('id'), required=False, default=Person.objects.get(id=7)) 
+0

ありがとうございました –

+0

この回答があなたの問題を解決した場合は、歓迎します。あなたはそのようにマークする必要があります。(http://meta.stackexchange.com/questions/147531/how-mark-my-question-スタック・オン・レスポンス・オン・スタックオーバーフロー)ので、人々がこの質問を訪問するとき、彼らはこれが正しいことを知るでしょう。 –

関連する問題