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>