Несколько запросов POST к одной конечной точке Django - PullRequest
0 голосов
/ 13 июля 2020

У меня есть конечная точка /homepage в моем приложении django, которое отображает страницу HTML. На этой странице есть несколько форм, каждая из которых отправляет запрос POST к конечной точке /homepage. Как я могу расшифровать, какой запрос POST отправляется на конечную точку /homepage?

Или лучше создать конечную точку, например /api, которая имеет подконечные точки для каждого из запросов POST на странице ?

Спасибо !!

Ответы [ 2 ]

0 голосов
/ 13 июля 2020

Если вы полагаетесь на проверку на основе формы и хотите, чтобы любые ошибки возвращались пользователю и отображались на домашней странице, вероятно, лучше всего подойдет один из следующих подходов.

Как упоминалось в комментариях, вы можете установите атрибуты name и value для кнопки отправки в каждой форме на вашей странице, затем проверьте это значение при обработке POST:

шаблон:

<button type="submit" name="action" value="add">Submit</button>

views.py:

def homepage(request):
    if request.method == 'POST':
        action = request.POST.get('action', None)
        if action == 'add':
            # do something

Если это не соответствует вашим потребностям, вы можете добавить параметры к URL-адресу действия формы и обработать его аналогичным образом:

шаблон:

<form action="{% url 'homepage' %}?action=add" method="post">

views.py:

def homepage(request):
    if request.method == 'POST':
        action = request.GET.get('action', None)
        if action == 'add':
            # do something

Однако, если вам не нужно отображать ошибки для пользователя на главной странице, go с отдельными конечными точками для каждой формы.

0 голосов
/ 13 июля 2020

Было бы замечательно, если вы рассмотрите стратегию разделения проблем и сохраните отдельные конечные точки api для каждой формы и заставите ajax вызывать соответствующую конечную точку при каждой отправке и обновлять соответствующие элементы в соответствии с ответом на вызов ajax на домашней странице вместо перезагрузка всей страницы сделает ваше приложение более эффективным и масштабируемым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...