Как получить имя типа ввода submit modelform в Django
Я столкнулся с проблемой. Пожалуйста, помогите мне
templates.html
<form action="" method="POST">{% csrf_token %}
{{Form.as_p}}
<input type="submit" name="Save" value="Save">
<input type="submit" name="Delete" value="Delete">
</form>
view.py
Представления на основе классов:
def post(self,request,text_id):
try:
text_data = Text.objects.get(pk=text_id)
a = FormText(request.POST,instance=text_data)
except:
a = FormText(request.POST)
if request.POST.get('name') =='Delete':
a.delete()
else:
try:
a.save()
except:
return HttpResponse('no ok')
Вы можете добавить это к кнопке, так:
<form action="" method="POST">
{% csrf_token %}
{{Form.as_p}}
<button type="submit" name="action" value="save">Save</button>
<button type="submit" name="action" value="delete">Delete</button>
</form>
Затем в вашем представлении вы можете получить доступ к значению ключа action
:
from django.shortcuts import get_object_or_404
def post(self,request,text_id):
item = get_object_or_404(Text, pk=text_id)
action = request.POST.get('action')
if action == 'delete':
item.delete()
# …
pass
elif action == 'save':
# …
pass
else:
# invalid action …
pass