【问题标题】:Page does not redirect on click but other buttons work/redirect properly?页面不会在点击时重定向,但其他按钮可以正常工作/重定向?
【发布时间】:2020-02-29 20:38:54
【问题描述】:

我有一个包含表单的页面。它有 3 个按钮,进入/离开和选项。我的进入和离开按钮运行良好,但 options 按钮应该重定向到条目列表,目前它没有做任何事情,甚至没有产生错误,我不知道为什么它正在发生。

我觉得我遗漏了一些非常轻微的东西,我尝试将 Manager Options 按钮移动到表单标签中,但这也不起作用,所以我不确定我是否遗漏了一个重要的部分,因为我对 Python/Django 还很陌生。

views.py

class EnterExitArea(CreateView):
    model = EmployeeWorkAreaLog
    template_name = "operations/enter_exit_area.html"
    form_class = WarehouseForm

    def form_valid(self, form):
        emp_num = form.cleaned_data['adp_number']

        if 'enter_area' in self.request.POST:
            form.save()
            return HttpResponseRedirect(self.request.path_info)

        elif 'leave_area' in self.request.POST:
            form.save()
            EmployeeWorkAreaLog.objects.filter(adp_number=emp_num).update(time_out=datetime.now())
            return HttpResponseRedirect(self.request.path_info)

        elif 'manager_options' in self.request.POST:
            return redirect('enter_exit_area_manager_options_list')

class EnterExitAreaManagerOptionsList(ListView):
    filter_form_class = EnterExitAreaManagerOptionsFilterForm
    default_sort = "name"
    template = "operations/list.html"

    def get_initial_queryset(self):
        return EmployeeWorkAreaLog.active.all()

    def set_columns(self):
        self.add_column(name='Employee #', field='adp_number')
        self.add_column(name='Work Area', field='work_area')
        self.add_column(name='Station', field='station_number')

urls.py

urlpatterns = [
    url(r'enter-exit-area/$', EnterExitArea.as_view(), name='enter_exit_area'),
    url(r'enter-exit-area-manager-options-list/$', EnterExitAreaManagerOptionsList.as_view(), name='enter_exit_area_manager_options_list'),
]

enter_exit_area.html

{% extends "base.html" %}
{% block main %}
    <form id="warehouseForm" action="" method="POST" novalidate >
        {% csrf_token %}

        <div>
            <div>
                {{ form.adp_number.help_text }}
                {{ form.adp_number }}
            </div>
            <div>
                {{ form.work_area.help_text }}
                {{ form.work_area }}
            </div>
            <div>
                {{ form.station_number.help_text }}
                {{ form.station_number }}
            </div>
        </div>

        <div>
            <div>
                <button type="submit" name="enter_area" value="Enter">Enter Area</button>
                <button type="submit" name="leave_area" value="Leave">Leave Area</button>
            </div>
        </div>
    </form>
{% endblock main %}

{% block panel_footer %}
    <div class="text-center">
        <button type="submit" name="manager_options" value="Options">
            Manager Options
        </button>
    </div>
{% endblock panel_footer %}

list.html

{% extends "base.html" %}

{% load core_tags staticfiles %}

{% block head %}
    <script src="{% static "js/operations/enter_exit_area_manager_options_list.js" %}"></script>
{% endblock head %}

{% block main %}
    {% include 'core/list_view/list.html' %}

{% endblock main %}

【问题讨论】:

    标签: python html django redirect


    【解决方案1】:

    您的选项按钮实际上是链接到另一个页面,因此您应该像这样将它添加到您的模板中。将按钮样式类替换为您希望按钮的外观。

    <a href="{% url 'enter_exit_area_manager_options_list' %}" class="button-styles">
    Manager Options
    </a>
    

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多