2017-09-14 1 views
0

Je suis nouveau à Django et cherche à construire une forme rapide avec une réponse.Réponse de forme de Django de base

Je suis en train de construire une forme qui demande à l'utilisateur d'entrer son nom lorsque l'utilisateur clique soumettre la page doit recharger et juste dire « Bonjour.

urls.py

class Question1Form(forms.Form): 
n = forms.CharField(max_length=100, 
        widget=forms.TextInput(
         attrs={'placeholder': 'Number', 'class': 'form-control'})) 

vues .py

def home(request): 
    if request.method == 'POST': 
    form = Question1Form(request.POST) 
    if form.is_valid(): 
     result = [Question1Form.ans()] 
     return HttpResponse(Question1Form.n) 
    else: 
    form = Question1Form() 
    return render(request, 'index.html', {'form': form}) 

index.html

<form action="" method="post" class="form"> 
    {% csrf_token %} 
    {{ form.non_field_errors }} 
    <div class="form-row form"> 
    <div class="col-sm-4"> 
     {{ form.n.errors }} 
     {{ form.n }} 
    </div> 
    <input class="btn btn-primary" type="submit" value="Submit" /> 
    </div> 
</form> 

Alors, comment s

Répondre

0

Vous devez appeler champ d'instance, pas de champ de classe et obtenir la valeur à partir des données validées (nettoyées) (voir documentation):

return HttpResponse(form.cleaned_data['n']) 

Si vous voulez recharger le même modèle avec n valeur:

return render(request, 'index.html', {'form': form, 'n': form.cleaned_data['n']}) 

et au modèle ajouter:

{% if form.is_valid %} 
    <p> Hello {{ n }} </p> 
{% endif %} 
0
if request.method == 'POST': 
    form = Question1Form(request.POST) 
if form.is_valid(): 
    result = form.save() 
    return render(request, 'index.html', {'created': True}) 

le code Ensuite, dans votre code HTML, vous pouvez dire

{% if created %} 
    <p> Hello </p> 
{% endif %} 

modifier Je vois maintenant vous avez aucune action dans votre formulaire.

Vous devez donc pointer vers cette vue dans votre URLS.py. par exemple.

from myapp import views as app_views 
from django.conf.urls import url 

urlpatterns =[ 
    url(r'^my_form/$', app_views.home, name='save_form'), 
] 

Puis ajoutez l'action à votre formulaire.

<form action="{% url 'save_form' %}" method="post" class="form">