更改布尔值并刷新页面 Wagtail

Change boolean value and refresh page Wagtail

我在 wagtail 管理员的页面列表中添加了一个自定义按钮。现在我想添加一个函数,在管理员单击新的自定义按钮并重新加载页面后,将该特定页面中的布尔值从 false 设置为 true,反之亦然。

#admin.py
class ProductButtonHelper(ButtonHelper):

    # Define classes for our button, here we can set an icon for example
    view_button_classnames = ['button-small', 'icon', 'icon-site'] 

    def view_button(self, obj):
        # Define a label for our button
        text = 'Objavi na Vojvodjanski'
        return {
            'url': obj,#here i think the url should be the same page that you're on 
            'label': text,
            'classname': self.finalise_classname(self.view_button_classnames),
            'title': text,
        }

    def get_buttons_for_obj(self, obj, exclude=None, classnames_add=None, classnames_exclude=None):
        """
        This function is used to gather all available buttons.
        We append our custom button to the btns list.
        """
        btns = super().get_buttons_for_obj(obj, exclude, classnames_add, classnames_exclude)
        if 'view' not in (exclude or []):
            btns.append(
                self.view_button(obj)
            )
        return btns

谢谢

好的,如果有人遇到同样的问题,这就是我想出的办法。

#urls.py

urlpatterns = urlpatterns + [
    
    ...

    path('test/confirm/<int:pk>', confirm, name='confirm-page'),
]

#view.py

def confirm(request, pk):
    inst = BlogPage.objects.get(id=pk)
    inst.ne_propustite = not inst.ne_propustite
    inst.save()
    #Return to previous url
    return HttpResponseRedirect(request.META.get('HTTP_REFERER'))

admin.py 与问题中的保持一致。