fix(orders): исправить удаление позиций заказа в формсете
- Исправлена логика удаления inline-форм для позиций заказа - Добавлена обработка удаления сохранённых и новых форм - Добавлено поле id и DELETE в OrderItemForm для корректной работы формсета - Добавлена проверка на null для created_by на странице отладки - Расширены права доступа к отладочной странице: теперь доступна owner и manager - Добавлено логирование для отладки процесса обновления заказа
This commit is contained in:
@@ -461,11 +461,15 @@ class OrderItemForm(forms.ModelForm):
|
||||
widget=forms.TextInput(attrs={'class': 'form-control', 'step': '0.01', 'min': '0'})
|
||||
)
|
||||
|
||||
# Поле DELETE, которое автоматически добавляется в inline формсете
|
||||
DELETE = forms.BooleanField(required=False, widget=forms.HiddenInput())
|
||||
|
||||
class Meta:
|
||||
model = OrderItem
|
||||
fields = ['product', 'product_kit', 'sales_unit', 'quantity', 'price', 'is_custom_price', 'is_from_showcase']
|
||||
# ВАЖНО: НЕ включаем 'id' в fields - это предотвращает ошибку валидации
|
||||
fields = ['id', 'product', 'product_kit', 'sales_unit', 'quantity', 'price', 'is_custom_price', 'is_from_showcase']
|
||||
# ВАЖНО: Теперь включаем 'id' в fields для правильной работы inline формсета
|
||||
widgets = {
|
||||
'id': forms.HiddenInput(), # Скрываем поле id, но оставляем его для формсета
|
||||
'quantity': forms.NumberInput(attrs={'min': 1}),
|
||||
# Скрываем поля product и product_kit - они будут заполняться через JS
|
||||
'product': forms.HiddenInput(),
|
||||
|
||||
Reference in New Issue
Block a user