Пользовательская кнопка на странице Django Admin, которая при нажатии изменяет поле модели на True

У меня есть пример модели в моем приложении Django App:

class CustomerInformation(models.Model):
    # CustomerInformation Schema
    name=models.CharField(max_length=200, verbose_name="Name",default="Default Name")
    login_url=models.URLField(max_length=200, verbose_name="Login URL",default="")
    is_test=models.BooleanField(default=False,verbose_name="Test")

Мне нужно создать кнопку на странице Django Admin для каждой записи модели (которая у меня есть) с надписью "Test Integration", примерно так: [Скриншот страницы администратора

Теперь, когда я нажимаю на кнопку, значение 'is_test' для этой конкретной модели CustomerInformation должно быть True. Пока что мне не удалось этого сделать. Вот что я пробовал до сих пор, благодаря статье в блоге Хаки БенитаБлог здесь:

# admin.py

class CustomerAdmin(admin.ModelAdmin):
    list_display = (
        'name',
        'username',
        'account_actions'
    )

    def get_urls(self):
        urls = super().get_urls()

        custom_urls = [
            url(
                r'^(?P<account_id>.+)/test_integration/$',
                self.admin_site.admin_view(self.test_integration),
                name='test-integration',
            )
        ]
        return custom_urls + urls

    def test_integration(self, request, account_id, *args, **kwargs):
        return self.process_action(
            request=request,
            account_id=account_id
        )

    def process_action(self,request,account_id):
        pass


    def account_actions(self, obj):
        return format_html(
            '<a class="button" href={}>Test Integration</a>',
            reverse('admin:test-integration', args=[obj.pk]),
        )
    account_actions.short_description = 'Account Actions'
    account_actions.allow_tags = True

Я понимаю, что мне нужно что-то сделать с методами process_action и test_integration в этом классе, чтобы выполнить то, что я хочу сделать, но как новичок в Django, я немного запутался. Есть предложения?

Огромное спасибо!!!

в вашей функции process_action сделайте setattr(self, 'is_test_result', True) затем переопределите get_form так

def get_form(self, *arg, **kwargs):
    form = super().get_form(*arg, **kwargs)
    if arg[1] and hasattr(self, 'is_test_result'):
        if self.is_test_result is not None:
            arg[1].is_test = self.is_test_result

            self.is_test_result = None



    return form

в arg[1], это ваш шаблон администратора, вы можете сделать arg[1].save() или позволить пользователю нажать обычную кнопку Сохранить или Сохранить и продолжить внизу справа

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