我必须在 forloop 中动态填充带有隐藏输入的表单。我这样做是这样的:我的表单类是:
class RemoveFromCartForm(forms.Form):
pass
它没有字段,因为我打算使用它来使用基于类的视图并进行表单处理。关键是我试图动态生成一个几乎没有隐藏输入的表单,如下所示:
{% for cart_item in cart.cartitems.all %}
<p>{{cart_item}}</p>
<form method="POST" action="">{% csrf_token %}
{{form.as_p}}
<input type="hidden" name="cartitem" value="{{cart_item.pk}}" />
<input type="hidden" name="cart" value="{{cart.pk}}" />
<input type="submit" value="remove">
</form>
{% endfor %}
我的视图类如下:
class AddToCart(DetailView, BaseFormView ):
form_class = RemoveFromCartForm
model = Cart
context_object_name = 'cart'
template_name = 'cart/add-to-cart.html'
def get_object(self,queryset=None):
return Cart.objects.get(cart_id=self.request.session['CART_ID'])
def form_valid(self, form):
cleaned_data = form.cleaned_data
#return something
问题是我的 form.cleaned_data 是 {},尽管我正在使用 forloop 动态填充一些隐藏的输入。如何添加那些隐藏的输入,以便在我的 form_valid 类中获取它们?