я должен иметь видавид Джанго перенаправляет URL не
def edit_booking(request, pk=None):
if not request.user.is_authenticated:
raise Http404
agent = Agent.objects.get(user=request.user)
booking = get_object_or_404(Booking, pk=pk)
form = BookingForm(request.POST or None, instance=booking)
if form.is_valid():
instance = form.save(commit=False)
instance.save()
return HttpResponseRedirect(instance.get_absolute_url())
elif form.errors:
messages.error(request,"There was a problem, please try again")
context = {
"form": form,
}
return render(request,'booking_form.html', context)
Я использую следующие urls.py
urlpatterns = [
url(r'^booking/create', create_booking, name="create-booking"),
url(r'^booking/$', booking_list, name="booking-list"),
url(r'^booking/(?P<pk>\d+)/$', booking_detail, name="booking-detail"),
url(r'^booking/(?P<pk>\d+)/edit', edit_booking, name="edit-booking"),
]
По какой-то причине, когда я пытаюсь отправить форму после редактирования некоторого бронирования (например, http://127.0.0.1:8000/booking/24/edit) Я автоматически перенаправляюсь на (http://127.0.0.1:8000/booking/24/).
Насколько я могу судить, django не обрабатывает дальнейший код в представлении. Я попытался выяснить с помощью простой печати («что-то»), чтобы увидеть, где находится код, но он сразу же отправляется на URL сразу после отправки из шаблона. Для полноты это шаблон:
{% extends 'base.html' %}
<div class="col-sm-6 col-sm-offset 3">
{% block content %}
<form method="POST" action=".">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Save"/>
</form>
{% endblock %}
</div>