2015-07-28 9 views
5

Attualmente sto utilizzando CreateView di django per inviare dati al database. Sfortunatamente, il metodo in cui vorrei salvare ed eseguire la logica personalizzata, form_valid() non viene mai chiamato. Ho letto su un'altra risposta di overflow dello stack che form_invalid() potrebbe scoprire il problema, ma non riesco a ottenere quel metodo per chiamare entrambi. L'unico metodo che sembra chiamare è get(), su cui ho eseguito l'override e ho inserito una dichiarazione di stampa. Che cosa sto facendo male?Django form_valid() e form_invalid() in CreateView non chiamato

la dichiarazione della classe in view.py

class TeamCreate(CreateView): # Manipulate and use this Method instead of create_team 
    model = Team 
    # form_class = create_team_form 
    fields = ['team_name', 'sport', 'sport_season'] 
    success_url = '/' 

    def get(self, request, *args, **kwargs): 
     self.user = request.user 
     print 'happening1' 
     return super(TeamCreate, self).get(request, *args, **kwargs) 


    def form_valid(self, form): 
     print 'happening2' 
     # form.instance.save() 
     # self.user.teams.add(form.instance) 
     form.save() 
     return super(form_valid, self).form_valid(form) 

    def form_invalid(self, form): 
     print "form is invalid" 
     return http.HttpResponse("form is invalid.. this is just an HttpResponse object") 

segna il modello relativo codice

{% block content %} 
<form action="" method=”POST”> 
    {% csrf_token %} 
    {{ form|crispy }} 
    <input class="btn btn-primary" type="submit" value="Create" /> 
</form> 

risposta

18

A quanto pare le virgolette intorno POST non erano virgolette a tutti, ma la vita subdolo ninja rovinando. "Contro”. Io vado a letto.

3

Prova questo

<form action="" method="post"> 
Problemi correlati