I need a for loop condition for my Django inline formset for a particular reason. But I want to exclude deleted objects from that loop.
def my_fun(request, pk):
instance = get_object_or_404(Sale.objects.filter(pk=pk, is_deleted=False))
SaleItemFormset = inlineformset_factory(
Sale,
SaleItem,
can_delete=True,
extra=extra,
exclude=('creator', 'updator', 'auto_id', 'is_deleted'),
widgets = {
'product': autocomplete.ModelSelect2(url='products:product_autocomplete', attrs={'data-placeholder': 'Product', 'data-minimum-input-length': 1}),
'qty': TextInput(attrs={'class': 'required form-control number', 'placeholder': 'Quantity'}),
'cost': TextInput(attrs={'class': 'required form-control number', 'placeholder': 'Cost'}),
'price': TextInput(attrs={'class': 'required form-control number', 'placeholder': 'Price'}),
'tax': TextInput(attrs={'class': 'required form-control number', 'placeholder': 'Tax'}),
'discount': TextInput(attrs={'class': 'required form-control number', 'placeholder': 'Discount'}),
'subtotal': TextInput(attrs={'class': 'required form-control number', 'placeholder': 'Sub Total'}),
}
)
sale_item_formset = SaleItemFormset(request.POST, prefix='sale_item_formset', instance=instance)
if sale_item_formset.is_valid():
for form in sale_item_formset:
# I don't want deleted formset objects
# how can I exclude from this loop?
Formset
has a deleted_forms
prop You can use it to exclude them.
if sale_item_formset.is_valid():
deleted_forms = sale_item_formset.deleted_forms
for form in sale_item_formset:
if form not in deleted_forms:
#do some staff
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.