ich versuche gerade von einer bestehenden crispy form das design anzupassen. Angezeigt werden die Felder, aber das speichern geht nicht, die seite lädt kurz aber es wird nichts in der Datenbank gespeichert und ich bekomme keine Fehlermeldung.
So sieht das funktionierende (alte) aus
forms.py
Code: Alles auswählen
class ArticleForm(forms.ModelForm):
status = forms.CharField(widget=forms.HiddenInput())
edited = forms.BooleanField(
widget=forms.HiddenInput(), required=False, initial=False)
class Meta:
model = Article
fields = ["name", "content", "status", "edited", "source", ]
article_create.html
Code: Alles auswählen
{% block content %}
{% endfor %}
<form action="{% url 'articles:write_new' %}" enctype="multipart/form-data" id="article-form" method="post" role="form">
{% csrf_token %}
{% crispy form %}
<button type="button" class="btn btn-primary publish">{% trans 'Save' %}</button>
<a href="{% url 'articles:write_new' %}" class="btn btn-default">{% trans 'Reset' %}</a>
</div>
</form>
{{ form.media }}
{% load static %}
{% endblock content %}
{% block modal %}
<script>
$(function () {
$(".publish").click(function () {
$("input[name='status']").val("C");
$("#article-form").submit();
});
$(".update").click(function () {
$("input[name='status']").val("P");
$("input[name='edited']").val("True");
$("#article-form").submit();
});
});
</script>
{% endblock modal %}
Und so, das angepasste html
Code: Alles auswählen
{% block content %}
{% endfor %}
<form action="{% url 'articles:write_new' %}" enctype="multipart/form-data" id="article-form" method="post" role="form">
{% csrf_token %}
<!-- {% crispy form %} -->
<div class="form-group">
<div class="form-row">
<div class="form-group col-md-6 mb-0">
{{ form.name|as_crispy_field}}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 mb-0">
{{ form.content|as_crispy_field }}
</div>
<!-- ab hier gekürzt, um es leichter lesen zu können-->
</div>
<button type="button" class="btn btn-primary publish">{% trans 'Save' %}</button>
<a href="{% url 'articles:write_new' %}" class="btn btn-default">{% trans 'Reset' %}</a>
</div>
</form>
{{ form.media }}
{% load static %}
{% endblock content %}
{% block modal %}
<script>
$(function () {
$(".publish").click(function () {
$("input[name='status']").val("C");
$("#article-form").submit();
});
$(".update").click(function () {
$("input[name='status']").val("P");
$("input[name='edited']").val("True");
$("#article-form").submit();
});
});
</script>
{% endblock modal %}
Warum lässt sich das nun nicht mehr speichern? Ich habe ebenfalls die Methode direkt in der forms.py versucht, allerdings ist hier das selbe Ergebnis