2017-10-05 4 views
0

J'ai un modèle de django que je veux afficher pour l'utilisateur. Maintenant, je travaille sur une version modifiable d'un modèle html. Je voulais savoir s'il existait un moyen de pré-remplir un formulaire django avec des informations relatives saisies dans la base de données ou l'ensemble de requêtes. Je sais comment afficher et travailler avec des formulaires, mais ne pas pré-remplir un formulaire avec des informations.Un moyen simple de remplir un formulaire django avec des informations stockées - Django

Voici une forme simple et un jeu de requête.

Je souhaite remplir le UserSettingsTwoForm() avec les informations du jeu de queues currentProfile.

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

Voici un exemple de fichier 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 %} 

Répondre

2

Si UserSettingsTwoForm est sous forme de modèle profil vous pouvez alors charger instance précédente par mot-clé simplement d'instance et passer par exemple à elle

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

Dans le cas contraire Utilisez Initial si UserSettingsTwoForm n'est pas un formulaire de modèle de profil.

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) 

Ceci est.