ich versuche gerade eine Seite zu bauen die es meinen Usern erlaubt ein Angebot zu erstellen, jedes Angebot zusätzlich ein oder mehrere Angebotsposten (Item). Beide Models haben ihre eigene Form und der User muss auch beide Forms in der Seite ausfüllen.
Bisher bin ich zumindest soweit gekommen das man beide Formulare ausfüllen und abschicken kann, nur geht es ab da den Bach runter, weil der Submit-Button mich danach zu einer "Page not working" Seite weiterleitet und nichts mehr passiert. Ich hab leider keine Ahnung warum das passiert, wüsste hier jemand vielleicht eine Lösung / Grund?
Mein Code:
Views.py
Code: Alles auswählen
class OfferCreateView(TemplateView):
def dispatch(self, request, *args, **kwargs):
return super(OfferCreateView, self).dispatch(request, *args, **kwargs)
def form_valid(self, form):
self.object = form.save(commit=False)
self.object.last_modified_by = self.request.user
self.object.save()
form.save_m2m()
return redirect(self.object.get_absolute_url())
model = Offer
template_name = 'offers/offer_create.html'
form_class = OfferCreateForm
def get(self, request, *args, **kwargs):
form = OfferCreateForm(self.request.GET or None)
item_form = ItemCreateForm(self.request.GET or None)
context = self.get_context_data(**kwargs)
context['form'] = form
context['item_form'] = item_form
return self.render_to_response(context)
Code: Alles auswählen
{% block content %}
<div class="box box-solid box-default">
<div class="box-header with-border">
<h3 class="box-title">Neues Angebot erstellen</h3>
</div>
<form method="post" action="" class="form">{% csrf_token %}
<div class="box-body">
<fieldset>
<legend>Information {% icon 'fa-info-circle' %}</legend>
<p>
Bitte alle Felder mit den nötigen Informationen ausfüllen. Die restlichen Daten werden automatisch
von MESS erzeugt. Eine PDF kann im Anschluss in der Detailansicht erzeugt werden.
</p>
</fieldset>
{% crispy form %}
<fieldset>
<legend>Angebotsposten</legend>
<p>
Hier werden die Angebotsposten für das Angebot erstellt.
</p>
</fieldset>
<div class='table'>
{% crispy item_form %}
</div>
<input type="button" value="Add More" id="add_more">
<script>
$('#add_more').click(function() {
cloneMore('div.table:last', 'service');
});
</script>
</div>
<div class="box-footer">
<div class="form-actions">
<a class="btn btn-default btn-flat" href="{% url 'offers:offers-list' %}">Abbrechen</a>
<input type="submit" class="btn btn-primary btn-flat pull-right" value='Anlegen'>
</div>
</div>
</form>
</div>
{% endblock %}