簡體   English   中英

從Django嵌入式表單集中排除已刪除的對象

[英]Exclude deleted objects from Django inline formset

出於特定原因,我需要為Django嵌入式表單集設置for循環條件。 但是我想從該循環中排除已刪除的對象。

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具有deleted_forms您可以使用它來排除它們。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM