Django advanced crispy form, speichern geht nicht

Django, Flask, Bottle, WSGI, CGI…
Antworten
snowball
User
Beiträge: 4
Registriert: Mittwoch 1. August 2018, 20:02

Sonntag 12. Januar 2020, 21:07

Hallo,

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
Antworten