在我的程序中,索引页面显示表格中的产品列表,每行包含一个复选框,以及价格级别的下拉列表(例如:零售,分销商) 当用户通过选中复选框选择价格水平和多个产品时,他们会点击流程,程序会根据所选项目和所选价格水平运行查询
因此,它有2个视图:索引视图,列出所有内容和详细视图,列出所选的任何内容。索引视图是具有POST按钮的视图,是我捕获所选价格级别和所选项目的位置。这些参数将使用返回重定向传递给详细信息视图。
我遇到的问题是URLConfig url.py
在详细视图中,传递了2个参数:选定的价格级别和所选项目。根据所选的价格水平,我没有捕获它的问题,因为它是单一价值:零售或分销商。选定的项目是问题:我不知道如何在URL配置中传递一系列选定的项目。
路径应该是这样的 / detail / Retail / {product A,product B,product C}
这是我到目前为止所得到的
path('detail /',views.detail,name ='detail')
这是错误消息
使用关键字参数“{'kwargs':{'pricelevel_id':'1','selected_items':['2','7','5']}}'找不到”详细信息“。尝试了1种模式:['pricequotation \ / detail \ /(?P [0-9] +)$']
这是我的索引视图:
def index(request):
item = Item.objects.all().order_by('category','description','unitofmeasure')
pricelevels = get_list_or_404(PriceLevel)
if request.method == 'POST':
selected_pricelevel = request.POST['selected_pricelevel']
print (selected_pricelevel)
return redirect('pricequotation:detail', pricelevel_id = selected_pricelevel)
else:
return render(request,"index.html",context={'item':item,'pricelevels':pricelevels})
以下是我的详细信息视图:
def detail(request,pricelevel_id):
selected_pricelevel = get_object_or_404(PriceLevel,pk=pricelevel_id)
pricelevelperitem = PriceLevelPerItem.objects.filter(pricelevel__name__contains=selected_pricelevel).order_by('item__description','item__name')
return render(request,"detail.html",context={'pricelevelperitem':pricelevelperitem,'selected_pricelevel':selected_pricelevel})
答案 0 :(得分:1)
在您的JavaScript客户端中,您将拥有以下内容:
var arr = {
"pricelevel_id": "1",
"selected_items": ["2", "7", "5"]}
$.ajax({
type: "POST",
url: "https://yourdomain.com/detail/Retail/",
crossDomain: true,
data: JSON.stringify(arr),
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function(data) {
console.log('success with '+data);
},
error: function(data){
console.log("failure with "+data);
}
});
然后你的Django视图:
def detail(request):
pricelevel_id = request.data['pricelevel_id']
selected_items = request.data['selected_items']
# Any processing logic you may have goes here