1

編集用のオブジェクトを自動入力したいフォームがあります。

私のフォームスニペットは次のとおりです。

{% for field in form %}
    <div class="form_block">
        {{ field.label_tag }}
        {% if field.help_text %}
            <p class="help_text">{{ field.help_text }}</p>
        {% endif %}
        {{ field }}
        {% for error in field.errors %}
            <p class="error">{{ error }}</p>
        {% endfor %}
    </div>
{% endfor %}

フォームで利用可能なときにオブジェクトコンテンツを追加するこのようなスニペットを作成する簡単な方法はありますか?または、明示的に記述された値を使用して編集フォームを再作成する必要がありますか?

ありがとう!

4

1 に答える 1

0

initialまたは_ModelForm

>>> from django import forms
>>> from django.contrib.auth.models import *

>>> class UserForm(forms.Form):
>>>     username = forms.CharField()
>>> print unicode(UserForm(initial={'username':'foo'}))
<tr><th><label for="id_username">Username:</label></th><td><input type="text" name="username" value="foo" id="id_username" /></td></tr>


>>> class UserModelForm(forms.ModelForm):
>>>     class Meta:
>>>         model = User
>>>         fields = ['username']
>>> print unicode(UserModelForm(instance=User(username='foo')))
<tr><th><label for="id_username">Username:</label></th><td><input id="id_username" type="text" name="username" value="foo" maxlength="30" /><br /><span class="helptext">Required. 30 characters or fewer. Letters, numbers and @/./+/-/_ characters</span></td></tr>
于 2012-05-27T05:40:01.557 に答える