2017-10-05 14 views
0

私はユーザーに表示したいdjangoテンプレートを持っています。今、私はhtmlテンプレートの編集可能なバージョンに取り組んでいます。データベースやクエリセットから取得した相対情報をdjango形式に事前に埋め込む方法があるかどうかを知りたかったのです。私はフォームを表示して作業する方法を知っていますが、フォームに情報をあらかじめ埋め込むことはできません。保存された情報を使ってdjangoフォームを簡単に埋める方法 - Django

ここには単純な形式とクエリーセットがあります。

UserSettingsTwoForm()currentProfileクエリーセットの情報を入力したいと思います。ここで

currentProfile = Profile.objects.get(user = currentUser) 
userSettingTwo = UserSettingsTwoForm() 
parameters = { 
    'userSettingTwo':userSettingTwo, 
} 
return render(request, 'tabs/user_settings.html', parameters) 

サンプルhtmlファイルです:

{% extends "base.html" %} 

{% block content %} 
    <h1>Settings</h1> 
    <form action="." method="POST"> 
    {% csrf_token %} 
    {{ userSettingTwo.as_p }} 
    <input type="submit" name="submit" value="submit"> 
    </form> 
{% endblock %} 

答えて

2

UserSettingsTwoFormは、プロファイルモデルの形であれば、あなただけのインスタンスキーワードで以前のインスタンスをロードすることができますし、そうでない場合に

currentProfile = Profile.objects.get(user = currentUser) 
userSettingTwo = UserSettingsTwoForm(instance=current_profile) 
parameters = { 
    'userSettingTwo':userSettingTwo, 
} 
return render(request, 'tabs/user_settings.html', parameters) 

をインスタンスを渡しますUserSettingsTwoFormがプロファイルモデルフォームでない場合は、Initialを使用します。

currentProfile = Profile.objects.get(user = currentUser) 
userSettingTwo = UserSettingsTwoForm(initial = {'form_field': currentProfile.fieldname, 'form_second_field': currentProfile.fieldname}) 
parameters = { 
    'userSettingTwo':userSettingTwo, 
} 
return render(request, 'tabs/user_settings.html', parameters) 

それはそれです。

関連する問題