У меня есть пункты, где я могу легко редактировать один за другим, все работает хорошо, но в случае, если я хочу редактировать несколько идентификаторов одновременно, установив флажок, я застрял и не могу заставить его работать.Где я делаю неправильно?
Вот мои коды:
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 -> Я посылаю переменные в функцию 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 для получения идентификаторов и типа.
<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.
Моя логика неверна?Есть ли какой-либо другой более простой способ для редактирования нескольких идентификаторов сразу, выбрав с помощью флажка, или если я на правильном пути, можете ли вы дать мне подсказку, чтобы решить эту проблему.Спасибо
Я добавил, но не думаю, что мне нужен правильный URL, как будто мы редактируем один идентификатор, например, url (r '^ detail / (? P \ d +) / $',
urls.py
url(r'^fast_edit/$', views.fast_edit, name='fast_edit'),