Как перенаправить на ту же страницу после публикации в django?
В моем приложении django есть форма, которая перенаправляет на новую страницу, если форма действительна. На этой новой странице я хочу разместить новую форму, в которой я могу добавлять временные интервалы. Как я могу настроить свою функцию в views.py, чтобы я мог перенаправляться на ту же страницу после ввода начального_времени и конечного_времени для таймслота? Вот что у меня есть на данный момент:
В models.py
class TimeSlot(models.Model):
time_slot_owner = models.ForeignKey(User, on_delete=models.CASCADE)
food_avail_id = models.ForeignKey(FoodAvail, on_delete=models.CASCADE)
start_time = models.TimeField()
end_time = models.TimeField()
def __str__(self):
return str(self.start_time) + "-" + str(self.end_time)
В файле forms.py:
class TimeSlotForm(ModelForm):
class Meta:
model = TimeSlot
fields = ["start_time", "end_time"]
В views.py:
def create_timeslots(request):
if not check_existing_timeslot(request):
instance = TimeSlot()
data = request.POST.copy()
data["time_slot_owner"] = request.user
data["food_avail_id"] = FoodAvail.objects.get(author=request.user)
form = TimeSlotForm(data or None, instance=instance)
if request.POST and form.is_valid():
form.save()
return HttpResponseRedirect(request.path_info)
else:
instance = get_object_or_404(TimeSlot, time_slot_owner=request.user)
form = TimeSlotForm(request.POST, request.FILES, instance=instance)
if request.method == "POST":
form = TimeSlotForm(request.POST or None, instance=instance)
if form.is_valid():
form.save()
return HttpResponseRedirect(request.path_info)
else:
form = TimeSlotForm(instance=instance)
return render(request, "food_avail/view_food_avail.html", {"timeslot": form})
Мой HTML шаблон:
{% if form.errors %}
{% for field in form %}
{% for error in field.errors %}
<div class="alert alert-danger">
{{ field.label }} <strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endfor %}
{% for error in form.non_field_errors %}
<div class="alert alert-danger">
{{ field.label }} <strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endif %}
{% if user.is_authenticated %}
<div>
<div>
<div>
<div>
<h4>
{{ food.author.username }}<br>
</h4>
</div>
<div>
Food Available: {{ food.food_available }}<br>
Description: {{ food.description }}<br>
{% endif %}
</div>
</div>
<div>
<h3>Add Time Slot</h3>
<form method="POST">
{% csrf_token %}
{{ timeslot.start_time }}
{{ timeslot.as_p}}
<button type="submit">Post Availability</button>
<br>
</form>
</div>
Проблема в том, что поля для временного интервала не отображаются на HTML-странице.