Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确认后未执行Django管理操作_Django_Django Admin - Fatal编程技术网

确认后未执行Django管理操作

确认后未执行Django管理操作,django,django-admin,Django,Django Admin,在我的Django应用程序中,我想实现一个中间页面,在执行特定的管理操作之前请求确认。我举了一个例子 我使用现有的delete\u confirmation.html模板作为出发点,并部分地使其工作。此时将显示确认页面并显示所选对象。但是,在单击“是的,我确定”后,我的管理操作从未被调用 在我的admin.py中,我有: def cancel_selected_bookings(self, request, queryset): """ Cancel selected booki

在我的Django应用程序中,我想实现一个中间页面,在执行特定的管理操作之前请求确认。我举了一个例子

我使用现有的
delete\u confirmation.html
模板作为出发点,并部分地使其工作。此时将显示确认页面并显示所选对象。但是,在单击“是的,我确定”后,我的管理操作从未被调用

在我的admin.py中,我有:

def cancel_selected_bookings(self, request, queryset):
    """
    Cancel selected bookings.
    """
    if request.POST.get("post"):
        for booking in queryset:
            booking.cancel()
            message = "Booking %s successfully cancelled." % booking.booking_id
            messages.info(request, message)
    else:
        context = {
            "objects_name": "bookings",
            'title': "Confirm cancellation of selected bookings:",
            'cancellable_bookings': [queryset],
            'action_checkbox_name': helpers.ACTION_CHECKBOX_NAME,
        }
        return TemplateResponse(request, 'admin/bookings/confirm_cancel.html', context, current_app=self.admin_site.name)
在我的模板中,我有(完整模板的剪辑):


{%blocktrans%}
确实要取消选定的{{objects\u name}}吗?
{%endblocktrans%}
{可取消预订%中的可取消预订%}
    {{可取消预订}无序列表}
{%endfor%} {%csrf_令牌%} {queryset%中obj的%s} {%endfor%}
  • 这将有助于:

    在行动方法中:

    context = {
        'objects_name': 'bookings',
        'title': 'Confirm cancellation of selected bookings:',
        'cancellable_bookings': [queryset],
        'ids': queryset.values_list("id"),
        'action_checkbox_name': helpers.ACTION_CHECKBOX_NAME,
    }
    
    在模板中:

            <div class="grp-group">
                <h2>
                    {% blocktrans %}
                        Are you sure you want to cancel the selected {{ objects_name }}?
                    {% endblocktrans %}
                </h2>
                {% for cancellable_booking in cancellable_bookings %}
                    <ul class="grp-nested-list">{{ cancellable_booking|unordered_list }}</ul>
                {% endfor %}
            </div>
            <form action="" method="post">{% csrf_token %}
                <div id="submit" class="grp-module grp-submit-row grp-fixed-footer">
                    {% for obj in queryset %}
                        <input type="hidden" name="{{ action_checkbox_name }}" value="{{ obj.pk|unlocalize }}" />
                    {% endfor %}
                    <input type="hidden" name="action" value="cancel_selected_bookings" />
                    <input type="hidden" name="post" value="yes" />
                    <ul>
                        <li class="grp-float-left"><a href="." class="grp-button grp-cancel-link">{% trans "Cancel" %}</a></li>
                        <li><input type="submit" value="{% trans "Yes, I'm sure" %}" class="grp-button grp-default" /></li>
                    </ul>
                    <input type="hidden" name="post" value="yes" />
                </div>
            </form>
    
    {% for id in ids %}
        <input type="hidden" name="{{ action_checkbox_name }}" value="{{ id.0|unlocalize }}" />
    {% endfor %}
    
    {%用于id%中的id}
    {%endfor%}
    
    不确定为什么迭代
    queryset
    不起作用,但唉

    context = {
        'objects_name': 'bookings',
        'title': 'Confirm cancellation of selected bookings:',
        'cancellable_bookings': [queryset],
        'ids': queryset.values_list("id"),
        'action_checkbox_name': helpers.ACTION_CHECKBOX_NAME,
    }
    
    {% for id in ids %}
        <input type="hidden" name="{{ action_checkbox_name }}" value="{{ id.0|unlocalize }}" />
    {% endfor %}