J'ai créé un formulaire pour la soumission de données. Lorsqu'un utilisateur remplit ce formulaire, j'utilise la méthode HTTP redirect. Maintenant, tout va bien et les données ne sont pas resoumises lorsque l'utilisateur veut actualiser la page. Mais l'utilisateur remplir ce formulaire et appuyez sur Entrez la clé encore et encore. Mêmes données ajoutées combien d'utilisateur appuyez sur Touche Entrée Touche. Je veux arrêter ça. Un utilisateur peut appuyer sur Entrez la clé. Les données n'ajoutent pas dans la base de données si un utilisateur appuie sur Enter Keyboard seconde ou plus.Django: arrête de resoumettre les données en double lorsque plusieurs fois appuyez sur Entrée Touche de clavier
ceci est ma forme fichier html
{% 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 %}
ceci est mon 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,)))
Aussi, je mot-clé unique dans le modèle de classe, mais je ne peux pas résoudre ce problème .
Je dois donc utiliser des formulaires Django. –
Oui, ça va le résoudre probablement – White