Djangoで成功したら、「調整完了」を表示させたい

2024年6月25日

調整がうまくいった場合、「調整完了」メッセージを表示させるには、ビューで条件分岐を行い、調整が成功した場合にメッセージを含む変数をテンプレートに渡すことができます。以下に、その具体的な例を示します。

views.py

python
# views.py

from django.shortcuts import render, redirect
from .forms import PriceAdjustmentForm
from .utils import price_adjustment

def my_view(request):
    # 既存のコード...

    adjustment_message = None  # メッセージを初期化

    if request.method == 'POST':
        form = PriceAdjustmentForm(request.POST)
        if form.is_valid():
            item_id = form.cleaned_data['item_id']
            adjusted_price = form.cleaned_data['adjusted_price']
            
            # 必要なパラメーターを使って価格調整の処理を実行
            success = price_adjustment(item_id, adjusted_price)
            
            if success:
                # 成功した場合のメッセージ
                adjustment_message = '調整完了'

    else:
        form = PriceAdjustmentForm()

    # 既存のコード...

    context = {'form': form, 'items': items, 'adjustment_message': adjustment_message}
    return render(request, 'template.html', context)

template.html

html
<!-- template.html -->

<!-- 既存のコード... -->

{% if adjustment_message %}
    <div class="alert alert-success" role="alert">
        {{ adjustment_message }}
    </div>
{% endif %}

<form method="post" action="" class="form">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">価格調整開始</button>
</form>

<!-- 既存のコード... -->

この例では、adjustment_messageという変数をビューで用意し、成功した場合にはその変数に「調整完了」メッセージを設定します。テンプレートではこの変数が存在する場合にメッセージを表示するようにしました。

未分類

Posted by ぼっち