问题描述
我创建了一个类别和产品下拉菜单,但是当我选择类别并按下选择按钮时,它不会显示与产品菜单相同的类别。我只想显示选择了哪个类别和产品的消息。我使用了 Django 消息,但是当我提交页面时,它会显示产品 ID。我想在提交前显示选择的类别和产品名称
视图.py
class OrderProduct(TemplateView):
template_name = 'purchase/orderProduct.html'
def get(self,request,*args,**kwargs):
allOrder = OrdersModel.objects.all()
categories = CategoryModel.objects.all()
categoryId = self.request.GET.get('SelectCategory')
predoct = ProductModel.objects.filter(category_id=categoryId)
args = {'categories': categories,'product': predoct,'allOrder': allOrder}
return render(request,self.template_name,args)
def post(self,request):
productobj = self.request.GET.get('SelectProduct')
if productobj:
messages.info(request,productobj)
try:
data = self.request.POST.get
orderProduct = OrdersModel(
product_id=productobj,description=data('description'),quantity=data('quantity'),)
orderProduct.save()
return redirect('orderProduct')
except Exception as e:
return HttpResponse('Failed{}'.format(e))
模板
{% block content %}
<form method="get">
{% csrf_token %}
<label>
<select name="SelectCategory">
<option disabled="disabled" selected> Select Category</option>
{% for category in categories %}
<option value="{{ category.id }}">
{{ category.name }}
</option>
{% endfor %}
</select>
</label>
<input type="submit" value="Select">
<label>
<select name="SelectProduct">
<option disabled="disabled" selected> Select Category</option>
{% for products in product %}
<option value="{{ products.id }}">
{{ products.name }}
</option>
{% endfor %}
</select>
</label>
<input type="submit" value="Select">
</form>
<div>
{% for message in messages %}
<h1>{{ message }}</h1>
{% endfor %}
</div>
<form method="post">
{% csrf_token %}
<label for="description">Description
<input type="text" name="description" id="description" placeholder=" decription ">
</label>
<label for="quantity">Quantity
<input type="number" name="quantity" id="quantity" placeholder="Enter the quantity of product">
</label>
<button type="submit">Submit</button>
</form>
{% end block %}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)