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 クラスで取得するにはどうすればよいですか?