Как получить имя типа ввода 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
Вернуться на верх