2017-10-05 118 views
0

我有一個django模板,我想爲用戶顯示。現在我正在研究HTML模板的可編輯版本。我想知道是否有一種方法可以預先填充從數據庫或查詢集中獲取的相關信息的django表單。我知道如何展示和使用表單,但不能預先填寫表單和信息。用存儲信息填充Django表單的簡單方法 - Django

這是一個簡單的表單和查詢集。

我想用currentProfile查詢集中的信息填充UserSettingsTwoForm()

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是剖面模型的形式,那麼你可以通過只instance參數加載前一個實例,並通過實例來它

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

否則如果UserSettingsTwoForm不是簡介模型表單,請使用初始值。

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) 

就是這樣。

相關問題