Я относительно новый в django и python, и теперь на пару дней я пытаюсь понять, как отправлять запросы PUT и DELETE через формы django.PUT и DELETE Django
Я нашел это темы: https://baxeico.wordpress.com/2014/06/25/put-and-delete-http-requests-with-django-and-jquery/
Sending a DELETE request from a form in Django
Но так это тем решить эту проблему швы не легко для меня. Итак, вопрос в том, есть ли простой способ отправить PUT и DELETE запросы через формы в Django.
Сейчас у меня есть это:
views.py
class AllRoutes(View):
model = Schedule
template_name = 'trains_schedule/all_routes.html'
def get(self,request,train_id=None):
if train_id:
train = Schedule.objects.get(pk=int(train_id))
context = {'train':train}
else:
context = {'schedule_list':Schedule.objects.all()}
return render(request,'trains_schedule/all_routes.html',context)
def delete(self,request,train_id=None):
route = get_object_or_404(Schedule, pk=train_id)
response = u'Successful delete route {}'.format(route.display_name())
route.delete()
return HttpResponse(response)
urls.py
urlpatterns = [
url(r'^trains/(?P<train_id>[0-9]+)?$', views.AllRoutes.as_view(), name='trains')]
all_routes.html
{% if schedule_list %}
<h3>{{ "List of all train routes" }}</h3>
<ul>
{% for train_route in schedule_list %}
<li><a href="{% url 'trains' train_route.id %}">{{ train_route.display_name }}</a></li>
{% endfor %}
</ul>
{% else %}
<p></p>
{% endif %}
{% if train %}
<h1>{{ train.train }}</h1>
<h3>{{ "Route info" }}</h3>
{{ train.display_train }}
<h3>{{ "Train info" }}</h3>
{{train.display_train_info}}
<form method="delete">
{% csrf_token %}
<input type="submit" value="Delete" />
</form>
{% else %}
<p></p>
{% endif %}
Сейчас он работает следующим образом:
- /поезда/показать список всех поездов маршрутов и предоставить ссылки на каждый маршрут
- /поезда/12 - получаем() в views.py получил маршрут идентификатор и показать информацию об этом маршруте
И я хочу, чтобы при нажатии «delete» - просмотреть запрос DELETE.
Я заканчиваю с делать это таким образом:
<form method="post">
{% csrf_token %}
<input id="action_id" type="hidden" name="action" value="Delete">
<input type="submit" value="Delete" />
</form>
и views.py я добавить обработку почтового запроса с action_id == «Удалить»
Но я хочу, чтобы сделать реальные DELETE и PUT запрос, а не разобрать запрос POST, чтобы понять, что мне нужно сделать - удалить или изменить маршрут или добавить новый.
Я понимаю, что мне нужно изменить эту часть:
<form method="delete">
{% csrf_token %}
<input type="submit" value="Delete" />
</form>
Но я не знаю, как это сделать.
Вы спрашиваете, как правильно удалить или редактировать в Django или вы хотите реализовать надлежащий интерфейс для отдыха?Ответ будет иным, как для интерфейса отдыха, лучше всего использовать сторонний пакет – dkarchmer
Я просто хочу знать, что это самый простой способ отправить запрос PUT и DELETE с лицевой стороны. Я читал о рамочной структуре REST - понимаю много, но та же проблема - не понимаю, как отправить запрос PUT и DELETE с внешней стороны. – Vova
Звучит так, будто вы читаете, что используете PUT и DELETE для изменения и удаления данных, но если вы не разрабатываете API, вы можете просто использовать правильный способ Django для создания редактирования и удаления представлений. Так что, скорее, пытаясь использовать слова, которые вы не можете понять, может быть, объясните, какова ваша конечная цель. – dkarchmer