#django #jira
#django #jira
Вопрос:
Я создал простую форму для открытия билета JIRA на основе пользовательского ввода. Я почти получил все это, за исключением того, что я не знаю, как использовать элемент form в POST-запросе. Вот что у меня есть на данный момент:
<form target="_blank" action='http://baseurl.com/secure/CreateIssueDetails!init.jspa?pid=10517amp;amp;issuetype=3amp;amp;summary=Change application name to {{new_name}}amp;amp;reporter={{request.user}}amp;amp;priority=5amp;amp;assignee=xxx' method='post'>
<label for="new_name">New name: </label>
<input id="new_name" type="text" name="new_name" value="{{item.name}}">
<input type="submit" value="Create JIRA ticket">
</form>
Итак, мне просто нужно, чтобы значение, которое пользователь вводит в new_name
элемент, было передано в соответствующее место в URL. Как мне получить к этому доступ?
Ответ №1:
Звучит так, как будто вы получаете POST и смешиваетесь. Данные POST не будут включены в сам URL, а скорее в саму полезную нагрузку запроса.
Итак, ваш URL-адрес будетhttp://baseurl.com/secure/CreateIssueDetails !init.jspa
Полезная нагрузка будет отдельно помещена в тело HTTP-запроса.
Если вам нужно использовать метод GET, сам URL-адрес будет таким же, как указано выше, но URL-адрес, который в конечном итоге попадает, будетhttp://baseurl.com/secure/CreateIssueDetails !init.jspa?new_name=КАКОЕ БЫ то ни БЫЛО ЗНАЧЕНИЕ.
Если вам нужны дополнительные пары ключ-значение для передачи, просто добавьте их как скрытые поля и передайте их таким образом.
Ваш код отредактирован:
<form target="_blank" action='http://baseurl.com/secure/CreateIssueDetails!init.jspa' method='post'> <!-- ARE YOU SURE IT'S A POST REQUEST AND NOT A GET? -->
<label for="new_name">New name: </label>
<input id="new_name" type="text" name="new_name" value="{{item.name}}">
<input type="hidden" value="10517" name="pid">
<input type="hidden" value="3" name="issuetype">
<input type="hidden" value="5" name="priority">
<input type="hidden" value="Change application name to {{new_name}}" name="summary">
<input type="hidden" value="{{request.user}}" name="reporter">
<input type="hidden" value="xxx" name="assignee">
<input type="submit" value="Create JIRA ticket">
</form>
Имеет смысл?
Комментарии:
1. Я решительно не уверен, что это POST вместо GET. Я изменил его на GET — что имеет больше смысла — но, тем не менее, сводка передается без заполнения переменной new_name.
2. Понял. Судя по тому, как выглядит информация, у нее есть все признаки того, что это POST — как следует из названия, вы отправляете материал на сервер, вместо того, чтобы получать — но опять же, просто проверьте документацию API, чтобы убедиться, что вы используете правильный метод. Чаще всего вы не можете обмениваться ими, если это не разрешено на стороне сервера. Надеюсь, это поможет!
3. И GET, и POST работают, но я не могу заставить значение new_name подключаться к значению summary.
4. Значение summary должно быть «Изменить имя приложения на {{item.name }}.
5. Итак, {{item.name }} — это просто значение по умолчанию. Пользователь должен изменить ее на что-то новое.