Как сделать так, чтобы форма перенаправляла на ту же страницу после отправки в Django?

Как я могу настроить свою функцию в views.py так, чтобы форма после отправки перенаправлялась на ту же страницу?

Например, я хочу добавить временные интервалы:

В моем файле views.py:

@login_required

def post_available_timeslots(request):
    print("Check")
    if not check_existing_timeslot(request):
        print("Time slot does not exist")
        instance = TimeSlot()
        data = request.POST.copy()
        data["time_slot_owner"] = request.user
        # data["food_avail_id"] = FoodAvail.objects.get(author=request.user).pk
        form = TimeSlotForm(data or None, instance=instance)
        if request.POST and form.is_valid():
            form.save()
            return redirect("food_avail:view_food_avail_res")
    else:
        print("Time slot does not exist")
        messages.info(request, "Time Slot Already Exists")
    return render(request, "food_avail/view_food.html", {"time_slot": form})

в 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"]

В urls.py:

from django.urls import path
from food_avail import views

app_name = "food_avail"

urlpatterns = [
    path("post_food_avail/", views.post_available_food, name="post_food_avail"),
    # path("post_food_avail/", views.FoodAvailCreateView.as_view(), name="post_food_avail"),
    # path("update_food_avail/", views.post_available_food, name="update_food_avail"),
    path("food_avail_all/", views.check_food_availibility, name="view_food_avail"),
    path("food_avail_res/", views.view_available_food, name="view_food_avail_res"),
    # path("food_avail_res/",  views.post_available_timeslots, name="create_timeslots"),

]

в моем 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>
        <h4>Add Time Slot</h4>
        <br><br>
    </div>
    <div>
        <div>
            <form method="post">
                 {{ time_slot.as_p }}
                <button type="submit" class="button btn-success">Submit</button>
            </form>
        </div>

    
        {% if time_slot %}
        <h4> List Of Time Slots </h4>
              </div>
              <div class="card-body">
                  
                <div class="table-responsive">
                  <table class="table table-hover ">
                    <thead>
                      <tr>
                        <th>Start Time</th>
                        <th>End Time</th>
                          <th>Edit</th>
                          <th>Delete</th>
                      </tr>
                    </thead>
                    <tbody>
                        {% for x in time_slot %}
                          <tr>
                              <td>{{x.start_time | time:'H:i:s'}}</td>
                              <td>{{x.end_time | time:'H:i:s'}}</td>
                              <td>
                                  {% endfor %}
                    {% endif %}

Я застрял на этой проблеме уже минуту, поэтому любая помощь будет очень признательна. Вот как это сейчас отображается на моем html шаблоне:

enter image description here

Вернуться на верх