Ошибки перенаправления в Django

В настоящее время у меня есть проблема с использованием моей кнопки, поскольку мне нужно открыть модальное окно, которое успешно работает, но при нажатии на кнопку с других страниц она должна перенаправлять обратно на страницу, на которой она была нажата.

<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#editProfile">+</button>

Я попробовал return redirect(request.META.get('HTTP_REFERER')), который действительно сохраняет url, но мне нужно использовать context['is_post'] в случае, если он не сможет снова открыть модал, который должен быть передан. Так что в настоящее время, если я использую мой, он будет открываться при ложных данных, но не будет удерживать url страницы. context['nmenu'] - это то, что используется, чтобы убедиться, что тег a в настоящее время активен.

views.py:

def index(request):
    context={}
    context['is_post']= False
    editProfileForm = UserProfileForm()
    if request.method == "POST":
        if 'editProfileForm' in request.POST:          
            editProfileForm = UserProfileForm(request.POST or None, request.FILES or None,instance=request.user)
            if editProfileForm.is_valid():
                editProfileForm.save()
                editProfileForm = UserProfileForm()
                context['editProfileForm'] = editProfileForm
                return render(request, "home.html", context)
            else:
                context['is_post'] = True
                context['editProfileForm'] = editProfileForm
                return render(request, "home.html", context)
    else:
        # Checks if user is logged out or in and passes to form
        if request.user.is_authenticated:
            Inbox = Messages.objects.filter(Q(sender=request.user) | Q(receiver=request.user)).order_by("-time", "read")
            context['Inbox'] = Inbox
            unreadMessagesCount = Messages.objects.filter(Q(receiver=request.user) & Q(read=False)).count()
            context['unreadMessagesCount']=unreadMessagesCount
            editProfileForm = UserProfileForm(instance=request.user)
            context['editProfileForm'] = editProfileForm
    
    context['nmenu']='home'
    return render(request, "home.html", context)

html:

{% block content %}
  <div class="col-md-3" style="float:left">

    <!-- Button trigger modal -->
    <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#editProfile">+</button>

    <ul class="nav nav-tabs flex-column" id="myTab" role="tablist">
      <li class="nav-item" role="presentation">
        <a class="nav-link" id="home"  href="/" >Dashboard</a>
      </li>
      <li class="nav-item" role="presentation">
        <a class="nav-link" id="calendar" href="calendar">Calendar</a>
      </li>

      <li class="nav-item" role="presentation">
        <a class="nav-link" id="logout" href="{% url 'logout' %}" >Log out</a>
      </li>
      
    </ul>
  </div>

  <div class="col-md-9" style="float:right">
    <div class="tab-content" id="myTabContent">
      <div class="tab-pane" id="home" >
        {% include 'dashboard.html' %}
      </div>
      <div class="tab-pane" id="calendar" >
        {% include 'googleCalendar.html' %}
      </div>
    
    </div>
  </div>

  {% if nmenu %} 
  <script type="text/javascript">
    $("a#{{nmenu}}").addClass("active");
    $("div#{{nmenu}}").addClass("active");
    
  </script>
  {% endif %}

{% endblock %} 

html

{% block content %}
 
    <div class="modal fade" id="editProfile" tabindex="-1" role="dialog" aria-labelledby="editProfilelCenterTitle" aria-hidden="true">
        <div class="modal-dialog modal-dialog-centered" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="editProfileLongTtitle">Edit Profile</h5>
                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body">
                    {% include 'editProfileForm.html' %}
                </div>
            </div>
        </div>
    </div>
    <!-- Do this after jQuery loaded -->
    <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
    {% if is_post %}
        <script type="text/javascript">
            $(window).on('load', function() {$('#editProfile').modal('show');});
        </script>
    {% endif %}
{% endblock %} 

urls.py

urlpatterns = [
    path('', index, name='home'),
    path('calendar', calendar, name='calendar'),

views.py

   @login_required
def calendar(request):
    context={}  
    editProfileForm = UserProfileForm(instance=request.user)
    context['editProfileForm'] = editProfileForm
    context['nmenu']='calendar'
    return render(request, 'home.html', context)
Вернуться на верх