2016-05-10 14 views
0

Nachdem ich Absenden-Button klicken Sie noch die Formulardaten vorhanden
Meine views.py Datei,Formulardaten nicht Clearing nach einreichen in django

def add_prod(request): 

    form = ProdForm(request.POST or None,request.FILES or None) 
    my_products = Add_prod.objects.all() 
    context = { 
      "form":form, 
      "products":my_products 
    } 

    if form.is_valid(): 
     instance = form.save(commit=False) 
     book = form.cleaned_data.get("book") 
     author = form.cleaned_data.get("author") 
     price = form.cleaned_data.get("price") 
     cat = form.cleaned_data.get("cat") 
     image = form.cleaned_data.get("image") 
     instance.book = book 
     instance.author = author 
     instance.price = price 
     instance.cat = cat 
     instance.image = image 
     instance.save() 

     form = ProdForm() 
     messages.add_message(request, messages.INFO,'Product Added') 

    return render(request,"add-prod.html",context) 

Add_prod der Name der Modellklasse ist

ProdForm ist der Name des in Formen definierten Klasse-Datei

Antwort

0

Umleiten auf die gleiche Seite wird das Problem

if form.is_valid(): 
     instance = form.save(commit=False) 
     book = form.cleaned_data.get("book") 
     author = form.cleaned_data.get("author") 
     price = form.cleaned_data.get("price") 
     cat = form.cleaned_data.get("cat") 
     image = form.cleaned_data.get("image") 
     instance.book = book 
     instance.author = author 
     instance.price = price 
     instance.cat = cat 
     instance.image = image 
     instance.save() 
     messages.add_message(request, messages.INFO,'Product Added') 
     return redirect("add_prod") 
0

definieren action Parameter in Form-Tag und keine Notwendigkeit von Javascript Formularfelder löschen

<form method="POST" action='your url or simply place dot(.) to redirect current url' enctype="multipart/form-data" name="myform" id="myform" onSubmit="clearField();"> 
    {% csrf_token %} 
    <table> 
     {{form.as_table}} 
    </table> 
    <input type="submit" value="Add"/> 
    <input type="reset" value="Cancel"/>  
    <input type="hidden" name="next" value="{{next}}"> 
</form> 
+0

Noch Daten lösen bilden, ist nicht eingereicht ist es möglich, es zu löschen unter Verwendung eines beliebigen django zuschreiben? – Bhanukiran

+0

Entfernen Sie OnSubmit-Parameter in Ihrem Formular und versuchen Sie es – Pavan

0

Wenn die Seite geladen ist, müssen Sie das leere Formular nicht wie im Abschnitt sonst beschrieben rendern.

def add_prod (Anfrage):

if request.method == 'POST': 
    form = ProdForm(request.POST or None, request.FILES or None) 
    my_products = Add_prod.objects.all() 
    context = { 
      "form":form, 
      "products":my_products 
    } 

    if form.is_valid(): 
     instance = form.save(commit=False) 
     instance.book = form.cleaned_data.get("book") 
     instance.author = form.cleaned_data.get("author") 
     instance.price = form.cleaned_data.get("price") 
     instance.cat = form.cleaned_data.get("cat") 
     instance.image = form.cleaned_data.get("image") 
     instance.save() 

     form = ProdForm() 
     messages.add_message(request, messages.INFO,'Product Added') 
else: 
    form = ProdForm() 

return render(request,"add-prod.html",context)