2015-07-28 23 views
5

aufgerufen Ich verwende derzeit CreateView django, um Daten in der Datenbank zu buchen. Leider wird die Methode, in der ich benutzerdefinierte Logik speichern und ausführen möchte, form_valid() nie aufgerufen. Ich habe in einer anderen Stack-Overflow-Antwort gelesen, dass form_invalid() das Problem möglicherweise aufdeckt, aber ich kann diese Methode auch nicht aufrufen. Die einzige Methode, die anscheinend aufgerufen wird, ist get(), die ich überbewerte und eine Druckanweisung einfüge. Was mache ich falsch?Django form_valid() und form_invalid() in CreateView nicht

die Erklärung Klasse 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") 

die entsprechenden Template-Code

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

Antwort

18

Anscheinend sind die Anführungszeichen um POST überhaupt keine Anführungszeichen waren, aber hinterhältig ninja Leben ruinieren Marken. "Versus“. Ich gehe ins Bett.

3

Versuchen Sie, diese

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