Djangoモデルフォームが保存されない

イアンプロベッツ

私はグーグルを持っていました、ここの他のトピックも見てください。それでも私のフォームは保存されていません。

見る

def newapprentice(request):
    form = NewApprenticeForm()
    if request.method == 'POST':
        #print('Printing POST:', request.POST)
        form = NewApprenticeForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('apprentices/index.html')


    return render(request, 'apprentices/newapprentice.html', {'form': form})

テンプレート

{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block content %}

  <h1>New Apprentice</h1>
  <form action="" method="POST" enctype="multipart/form-data">
    {% csrf_token %}
    <div class="form-row">
      <div class="form-group col-md-6 mb-0">
        {{ form.name|as_crispy_field }}
      </div>
      <div class="form-group col-md-6 mb-0">
        {{ form.email|as_crispy_field }}
      </div>
    </div>
    <div class="form-row">
      <div class="form-group col-md-6 mb-0">
        {{ form.role|as_crispy_field }}
      </div>
      <div class="form-group col-md-6 mb-0">
        {{ form.cost|as_crispy_field }}
      </div>
    </div>
    <div class="form-row">
      <div class="form-group col-md-6 mb-0">
        {{ form.p_name|as_crispy_field }}
      </div>
      <div class="form-group col-md-6 mb-0">
        {{ form.p_time|as_crispy_field }}
      </div>
    </div>
    <div class="form-row">
      <div class="form-group col-md-6 mb-0">
        {{ form.division|as_crispy_field }}
      </div>
      <div class="form-group col-md-6 mb-0">
        {{ form.line_manager|as_crispy_field }}
      </div>
    </div>
    <div class="form-row">
      <div class="form-group col-md-4 mb-0">
        {{ form.on_course|as_crispy_field }}
      </div>
      <div class="form-group col-md-4 mb-0">
        {{ form.finished_course|as_crispy_field }}
      </div>
      <div class="form-group col-md-4 mb-0">
        {{ form.left_course|as_crispy_field }}
      </div>
    </div>
    <div class="form-row">
      <div class="form-group col-md-6 mb-0">
        {{ form.start_date|as_crispy_field }}
      </div>
      <div class="form-group col-md-6 mb-0">
        {{ form.finish_date|as_crispy_field }}
      </div>
    </div>
    <div class="form-row">
      <div class="form-group col-md-12 mb-0">
        {{ form.notes|as_crispy_field }}
      </div>
    </div>
    <button type="submit" class="btn btn-success">Save</button>
    <a href="/apprentices/" class="btn btn-secondary">Back</a>
    </form>
{% endblock %}

Form.py

from django.forms import ModelForm
from .models import Apprentice

class NewApprenticeForm(ModelForm):
    class Meta:
        model = Apprentice
        fields = '__all__'

[保存]をクリックしても、文字通り何も起こりません。リダイレクトもエラーもありません。これはコンソールに出力されます[05/Oct/2020 12:58:13] "POST /apprentices/newapprentice/ HTTP/1.1" 200 12188

ご覧のとおりrequest.POST、ビューにを印刷して、フォームフィールドに入力されたすべてのデータが存在し、すべてがそこにあるかどうかを確認しました。ちょうど今、保存をクリックすると。何も起こりません。

何か案は??ありがとう

ウィレムヴァンオンセム

フォームが無効です。有効な場合は、オブジェクトを保存します。ただしform.save()、予想される副作用がない場合でもredirect(…)呼び出しの結果は200応答コードではなく302応答コードになります。

次のコマンドでフォームエラーを印刷できます。

def newapprentice(request):
    form = NewApprenticeForm()
    if request.method == 'POST':
        form = NewApprenticeForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('apprentices/index.html')
        print(form.errors)  # ←  print errors in the console

    return render(request, 'apprentices/newapprentice.html', {'form': form})

さらに、フォームを手動でレンダリングする場合は、フィールドごとのエラーとフィールド以外のエラーをレンダリングする方がよいでしょう。Djangoのドキュメントには、レンダリングフィールドという名前セクションがありますしたがって、次のようにフィールドを書き直す必要があります。

{{ form.name.errors }}
<div class="form-group col-md-6 mb-0">
    {{ form.name|as_crispy_field }}
</div>

その特定のフィールドのエラーを表示します。これは、現在ビューをデバッグするだけでなく、ユーザーが無効な入力を提供した場合(有効な電子メールアドレスではない電子メールアドレスなど)に役立ちます。その場合、Djangoはユーザーが問題を修正できるように、エラーのあるフォームをレンダリングできます。

編集:エラー<ul class="errorlist"><li>dept<ul class="errorlist"><li>This field is required.</li></ul></li><li>date_created<ul class="errorlist"><li>This field is required.</li></ul></li></ul>とテンプレートに基づいて、テンプレートにdeptフィールドがないようです

{{ form.dept.errors }}
<div class="form-group col-md-6 mb-0">
    {{ form.dept|as_crispy_field }}
</div>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Djangoモデルフォームが保存されない

分類Dev

Django モデル フォーム データが保存されない

分類Dev

Djangoモデルフォーム:m2mの裏側が保存されない

分類Dev

Djangoフォームデータがdatabsaeに保存されない

分類Dev

フォームデータがdjangoに保存されない

分類Dev

djangoモデルフォームにエラーが表示されない

分類Dev

Djangoモデルフォームが入力の選択肢を保存せず、エラーを返さない

分類Dev

フォームの保存でモデルにユーザーが追加されない

分類Dev

Djangoフォームコードが保存されない

分類Dev

Djangoフォームが正しく保存されない

分類Dev

Djangoフォームが保存されない

分類Dev

Djangoモデルフォームがすべてのフィールドをdbに保存しない

分類Dev

Djangoモデルがフォームからすべてのデータを保存しない

分類Dev

Djangoフォームがモデル属性を認識しない

分類Dev

djangoフォームでデータベースにデータが保存されない

分類Dev

カスタムフィールドを使用するとDjangoフォームが保存されない

分類Dev

DjangoモデルフォームはPOSTを設定しますが、保存されません

分類Dev

DjangoユーザーモデルOneToOneの拡張-ユーザープロファイルが保存されない

分類Dev

Django 1.6:モデルフィールドが表示されない

分類Dev

Djangoのモデルのデフォルト値がSQLに表示されない

分類Dev

シェルのDjangoアップデートモデルが保存されない

分類Dev

Django:カスタムユーザーモデルのフィールドがDjango管理画面に表示されない

分類Dev

DJANGOモデルフォームを使用して送信した後でも、画像がデータベースで更新されない

分類Dev

ManyToManyが保存されていないDjangoモデル

分類Dev

Djangoフォームがデータを保存しない

分類Dev

Djangoモデルフォームは表示されていません

分類Dev

カスタムユーザーモデルフィールド(AbstractUser)がdjango管理画面に表示されない

分類Dev

ModelChoiceFieldで保存されないDjangoフォーム-ForeignKey

分類Dev

Djangoモデルの属性はフォームによって正しく保存されますが、クエリするとNoneタイプが返されます

Related 関連記事

  1. 1

    Djangoモデルフォームが保存されない

  2. 2

    Django モデル フォーム データが保存されない

  3. 3

    Djangoモデルフォーム:m2mの裏側が保存されない

  4. 4

    Djangoフォームデータがdatabsaeに保存されない

  5. 5

    フォームデータがdjangoに保存されない

  6. 6

    djangoモデルフォームにエラーが表示されない

  7. 7

    Djangoモデルフォームが入力の選択肢を保存せず、エラーを返さない

  8. 8

    フォームの保存でモデルにユーザーが追加されない

  9. 9

    Djangoフォームコードが保存されない

  10. 10

    Djangoフォームが正しく保存されない

  11. 11

    Djangoフォームが保存されない

  12. 12

    Djangoモデルフォームがすべてのフィールドをdbに保存しない

  13. 13

    Djangoモデルがフォームからすべてのデータを保存しない

  14. 14

    Djangoフォームがモデル属性を認識しない

  15. 15

    djangoフォームでデータベースにデータが保存されない

  16. 16

    カスタムフィールドを使用するとDjangoフォームが保存されない

  17. 17

    DjangoモデルフォームはPOSTを設定しますが、保存されません

  18. 18

    DjangoユーザーモデルOneToOneの拡張-ユーザープロファイルが保存されない

  19. 19

    Django 1.6:モデルフィールドが表示されない

  20. 20

    Djangoのモデルのデフォルト値がSQLに表示されない

  21. 21

    シェルのDjangoアップデートモデルが保存されない

  22. 22

    Django:カスタムユーザーモデルのフィールドがDjango管理画面に表示されない

  23. 23

    DJANGOモデルフォームを使用して送信した後でも、画像がデータベースで更新されない

  24. 24

    ManyToManyが保存されていないDjangoモデル

  25. 25

    Djangoフォームがデータを保存しない

  26. 26

    Djangoモデルフォームは表示されていません

  27. 27

    カスタムユーザーモデルフィールド(AbstractUser)がdjango管理画面に表示されない

  28. 28

    ModelChoiceFieldで保存されないDjangoフォーム-ForeignKey

  29. 29

    Djangoモデルの属性はフォームによって正しく保存されますが、クエリするとNoneタイプが返されます

ホットタグ

アーカイブ