Как гласит заголовок, я могу обновить числовое значение, но не десятичное, если я установлю его на 11,11, я не могу изменить его на 11,12, но могу изменить на 12,11
модели
from django.db import models
price = models.DecimalField(max_digits=6, decimal_places=2)
view
from django.contrib.auth import forms
from django.shortcuts import render, redirect
def consumable_update(request, pk):
current_consumable = get_object_or_404(models.Consumables, pk=pk)
edit_consumable_form = forms.EditConsumableForm(request.POST, name=current_consumable.name, price=current_consumable.price)
if request.method == 'POST':
if edit_consumable_form.is_valid():
name = edit_consumable_form.cleaned_data['name']
price = edit_consumable_form.cleaned_data['price']
if models.Consumables.objects.filter(Q(name=name) & ~Q(id=current_consumable.id)).exists():
messages.add_message(request, messages.INFO, _('إسم الخامة مضاف من قبل بالفعل'))
else:
current_consumable.name = name
current_consumable.price = price
current_consumable.save()
messages.add_message(request, messages.INFO, _('تم تعديل الخامة بنجاح'))
return redirect('consumable_details', pk=current_consumable.id)
else:
edit_consumable_form = forms.EditConsumableForm(name=current_consumable.name, price=current_consumable.price)
context = {
'current_consumable': current_consumable,
'edit_consumable_form': edit_consumable_form,
}
return render(request, 'consumable_update.html', context)
forms.py
class EditConsumableForm(forms.Form):
def __init__(self, *args, **kwargs):
self.name = kwargs.pop("name")
self.price = kwargs.pop("price")
super(EditConsumableForm, self).__init__(*args, **kwargs)
self.fields['name'].widget.attrs = {'value': self.name}
self.fields['price'].widget.attrs = {'value': self.price}
name = forms.CharField(widget=forms.TextInput)
price = forms.DecimalField(widget=forms.NumberInput)