我必须在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类中获取它们?
答案 0 :(得分:0)
我不禁注意到form_valid()没有return语句 这是来自官方的django doc,请查看覆盖form_valid方法的示例 https://docs.djangoproject.com/en/dev/topics/class-based-views/generic-editing/