私はデータ提出のためのフォームを作成しました。ユーザーがそのフォームを正常に記入すると、私はHTTPリダイレクトメソッドを使用しています。今はすべてが大丈夫ですし、ユーザーがページをリフレッシュしたいときにデータが再送信されません。 しかし、フォームを作成し、を押すユーザーの入力を繰り返し入力します。ユーザーがどのくらい押すかを同じデータに追加Enterキーボタン。私はそれをやめたい。ユーザーはを押すことができます。を一度入力してください。ユーザーがEnter Keyboardを2回以上押すと、データはデータベースに追加されません。Django:しばらくすると、重複したデータを再送信しないでください。キーボードのEnterキーを押してください。
は、これは私がモデルクラス内で一意のキーワードを使用し、また、私のviews.py
def dueupdate(request, customer_id):
sys_type='updatedue'
due_customers = get_object_or_404(CustomerInfo, pk=customer_id)
track_invoice = due_customers.duetaka_set.all()
if request.method =='POST':
due_taka = request.POST['due_taka_add']
due_info_update_add = request.POST['customer_due_info']
due_customers.duetaka_set.create(customer_due_info=due_info_update_add, customer_due=due_taka, customer_due_date=timezone.now())
track_invoice=due_customers.duetaka_set.all()
sum_cost_taka = track_invoice.aggregate(
sp=Sum('customer_due')).get('sp', 0)
if sum_cost_taka == None:
sum_cost_taka=0
total_paid_taka = sum_cost_taka + due_customers.customer_first_time_payment
CustomerInfo.objects.filter(id=customer_id).update(
customer_due_taka_info=total_paid_taka)
return HttpResponseRedirect(reverse('shop:customersProfile', args=(due_customers.id, sys_type,)))
{% extends "shop/base.html" %}
{% block content_area %}
<div class="row">
<div class="col-lg-5">
<p>Customers Details</p>
<hr>
<div class="customers_info_due">
<p>Invoice ID: : {{due_customers.customer_uid}}</p>
<p>Name: {{due_customers.customer_name}}</p>
<p>Product Name: {{due_customers.customer_product_name}}</p>
<p>Price: {{due_customers.customer_price}} TK</p>
<p style="color:red">Customer Paid First Time: {{due_customers.customer_first_time_payment}} Taka</p>
{% if track_invoice %}
<table class="table">
<thead>
<tr>
<th>SL</th>
<th>Paid Taka</th>
<th>Paid Date</th>
</tr>
</thead>
<tbody>
{% for x in track_invoice %}
<tr>
<td>{{forloop.counter}}</td>
<td>{{x.customer_due}}</td>
<td>{{x.customer_due_date}}</td>
</tr>
{% endfor %}
<tr>
<td> Total</td>
<td><b>{{sum_cost_taka}}</b> TK </td>
</tr>
</tbody>
</table>
{% else %}
{% endif %}
<p>WARRENTY: {{due_customers.customer_product_warrenty}}</p>
<p>QN: {{due_customers.customer_product_quantity}}</p>
<p>Mobile No: {{due_customers.customer_mobile_no}}</p>
<p>Sell Date: {{due_customers.customer_sell_date}}</p>
</div>
</div>
<div class="col-lg-6">
<p>Update customers due info</p>
<hr>
<div class="due_forms">
<form action="{% url "shop:dueupdate" due_customers.id %}" method="POST">
{% csrf_token %}
<div class="form-group">
<label for="">Add this customer name: {{due_customers.customer_name}}</label>
</div>
<div class="form-group">
<label for="due_taka_add">Due taka add:</label>
<input type="number" class="form-control" id="due_taka_add" placeholder="Enter amount" name="due_taka_add" required>
</div>
<div class="form-group">
<label for="customer_due_info">Write Due Info:</label>
<input type="text" class="form-control" id="customer_due_info" placeholder="Write due info" name="customer_due_info">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
</div>
</div>
{% endblock content_area %}
である、これは私のフォームのHTMLファイルですが、私はこの問題を解決するカント。
だから私はDjangoフォームを使用する必要があります。 –
はい、それはおそらくそれを解決します – White