我有一些项目,我可以轻松地逐个编辑所有工作都很好但是如果我想通过选择复选框一次编辑多个ID,我会被卡住并且无法正常工作。我在哪里做错了?
这是我的代码:
fast_edit.html - >我通过实例将变量传递给字段。
<div class="row">
<div class="col-sm-12">
<div class="panel panel-default">
<div class="panel-body">
<form class="form-horizontal" action="" method="post" enctype="multipart/form-data">
{%csrf_token%}
{%for field in instance %}
<table class="table">
<tbody>
<tr>
<td width="100">
{{field.label_tag}}
</td>
<td>
{{field}}
</td>
</tr>
</tbody>
</table>
{% endfor %}
<div class="form-group">
<div class="col-sm-offset-6 col-sm6">
<button type="submit" class="btn btn-primary">Update FP Item</button>
</div>
</form>
</div>
</div>
</div>
</div>
forms.py
class FastFPForm(forms.ModelForm):
class Meta:
model = FP
fields = ['FP_Item', 'P_1', 'P_2']
widgets = {
'FP_Item': Textarea(attrs={'cols': 50, 'rows': 3}),
'P_1': Textarea(attrs={'cols': 50, 'rows': 1}),
'P_2': Textarea(attrs={'cols': 50, 'rows': 1}),
}
view.py - &gt;我发送变量到fast_edit函数
def items_home(request):
pfast_type = request.GET.get("pfast_type")
item = request.GET.get("fastedit")
........
elif pfast_type and item:
return fast_edit(pfast_type,item)
这是我的功能:
def fast_edit(request,id=None):
if not request.user.is_active:
return render(request, 'login.html')
else:
instance=get_object_or_404(FP,id=item)
form = FastFPForm(request.POST or None,instance=instance)
if form.is_valid():
instance = form.save(commit=False)
instance.user_id = request.user.id
instance.save()
return HttpResponseRedirect(instance.get_absolute_url())
context={
'FP' : FP.FP_Item,
'instance': instance,
'form': form
}
return render(request, 'fast_edit.html', context)
这是我对fastedit和pfast_type的输入,以获取id&#39; s和类型。
<input type="checkbox" id="P_1" name="pfast_type" value="P_1"/>
<input type="checkbox" id="{{ obj.id }}" name="fastedit" value="{{ obj.id }}"/>
我知道我的功能不正确但我无法根据自己的需要修复它,所以我要做的是如果选中P_1,我希望所有选定的项目都可以编辑为P_1字段,如果我选择P_2再次为我编辑所有选定的项目,以便能够在fast_edit页面上保存。
我的逻辑是假的吗?是否还有其他更简单的方法可以通过选择复选框一次编辑多个ID,或者如果我在正确的轨道上,请您给我提示解决此问题。谢谢
我添加了但我认为我不需要网址,因为我们正在编辑像网址一样的单个ID(r&#39; ^ detail /(?P \ d +)/ $&#39;,
urls.py
url(r'^fast_edit/$', views.fast_edit, name='fast_edit'),