Python Django从表单中隐藏字段并自动添加字段
我想将我所处的实际产品(product_detail.html)添加到购物车中。 所以在产品单位中,只需要指定产品的数量 无论如何,我无法制作单位产品,自动添加我所处的实际产品 forms.pyPython Django从表单中隐藏字段并自动添加字段,python,django,forms,Python,Django,Forms,我想将我所处的实际产品(product_detail.html)添加到购物车中。 所以在产品单位中,只需要指定产品的数量 无论如何,我无法制作单位产品,自动添加我所处的实际产品 forms.py class Product_unitForm(forms.ModelForm): class Meta: model = Product_unit fields = [ 'product', 'quantity',
class Product_unitForm(forms.ModelForm):
class Meta:
model = Product_unit
fields = [
'product',
'quantity',
]
widgets = {'product': forms.HiddenInput()}
def product_detail(request, id_category=None,id_product=None):
actual_product = Product.objects.get(id = id_product)
#Has an actual customer
#FORM
form_product_unit = Product_unitForm(request.POST or None)
form_product_unit.fields['product'] = actual_product # I try to add the product this way
if form_product_unit.is_valid():
instance_product_unit = form.save(commit=False)
instance_product_unit.product.save()
last_order = Order.objects.last()
is_buying = False
if(last_order.status == "en curso"):
is_buying = True
context = {
"Product" : actual_product,
"Is_buying" : is_buying,
#FORMS
"form_product_unit" : form_product_unit,
}
return render(request, "shopping/product_detail.html", context)
我从模板中隐藏产品,因为它只是实际产品,不需要指定
视图.py
class Product_unitForm(forms.ModelForm):
class Meta:
model = Product_unit
fields = [
'product',
'quantity',
]
widgets = {'product': forms.HiddenInput()}
def product_detail(request, id_category=None,id_product=None):
actual_product = Product.objects.get(id = id_product)
#Has an actual customer
#FORM
form_product_unit = Product_unitForm(request.POST or None)
form_product_unit.fields['product'] = actual_product # I try to add the product this way
if form_product_unit.is_valid():
instance_product_unit = form.save(commit=False)
instance_product_unit.product.save()
last_order = Order.objects.last()
is_buying = False
if(last_order.status == "en curso"):
is_buying = True
context = {
"Product" : actual_product,
"Is_buying" : is_buying,
#FORMS
"form_product_unit" : form_product_unit,
}
return render(request, "shopping/product_detail.html", context)
我想从视图中手动将product\u unit的product字段添加到它拥有的实际产品(实际产品)
模板
<img src="{{Product.image.url}}"/>
<h1>{{Product.title}}</h1>
<form method="POST" action="">{% csrf_token %}
{{ form_product_unit.as_p }}
<input type="submit" value="Add" />
</form>
{{Product.title}}
{%csrf_令牌%}
{{form_product_unit.as_p}
在views.py文件中,我认为您只需要做两个更改
def product_detail(request, id_category=None,id_product=None):
actual_product = Product.objects.get(id = id_product)
form_product_unit = Product_unitForm(data=request.POST or None,
initial={'product': actual_product})
并删除行
form_product_unit.fields['product']=实际_product
。您可能需要稍微使用initial
字典,以便将正确的值绑定到字段,但这是一般的想法。文档中的相关部分在views.py文件中,我认为您只需要做两个更改
def product_detail(request, id_category=None,id_product=None):
actual_product = Product.objects.get(id = id_product)
form_product_unit = Product_unitForm(data=request.POST or None,
initial={'product': actual_product})
并删除行
form_product_unit.fields['product']=实际_product
。您可能需要稍微使用initial
字典,以便将正确的值绑定到字段,但这是一般的想法。文档中的相关部分是能否请你缩进你的代码并解释得更清楚一点。能否请你缩进你的代码并解释得更清楚一点。