Можно создать для каждого продукта поле в конструкторе формы:
class OrderForm(ModelForm):
def __init__(self, request, *args, **kwargs):
super(OrderForm, self).__init__(*args, **kwargs)
cart = request.session.get('cart')
product_items = Product.objects.filter(id__in=cart)
for product in product_items:
key = 'product_{index}'.format(index=product.pk)
self.fields[key] = forms.BooleanField(required=False) # тут поле какое тебе удобней
def clean(self):
# здесь обрабатываешь поля из self.cleaned_data
return self.cleaned_data
Также можно для каждого продукта создавать по специальной форме и запросами(или аяксом) удалять/менять количество с помощью нее.