I have accept_withdraw_request action in my RequestWithdaw admin model
class RequestWithdraws(admin.ModelAdmin):
list_display = ("get_email", "amount", "address", "is_accept", "is_reviewed")
list_filter = ("is_reviewed",)
actions = ("accept_withdraw_request", "decline_withdraw_request")
@transaction.atomic
def accept_withdraw_request(self, request, queryset):
for withdraw_request in queryset:
if withdraw_request.is_reviewed:
self.message_user(request, level=messages.ERROR, message=f"Withdrawal request has already reviewed")
return
queryset.update(is_reviewed=True)
for withdraw_request in queryset:
with translation.override(withdraw_request.account.user.language):
withdraw_request.account.withdraw(-withdraw_request.amount)
amount = withdraw_request.amount - withdraw_request.commission
tx_hash = USDT.create_tx_out(withdraw_request.address, amount)
self.message_user(request, "Accepted {} withdraws".format(queryset.count()))
queryset.update(is_accept=True)
How can i throttle it to 1 request per 2 seconds when i push accept_withdraw_request admin action button
How can i throttle it to 1 request per 2 seconds when i push accept_withdraw_request admin action button