Das Problem tritt auf, wenn ich das Formular absende. Trotz der Verwendung einer POST-Methode im HTML-Formular und der Sicherstellung, dass meine Ansicht POST-Anfragen korrekt verarbeitet, erhalte ich einen HTTP-405-Fehler.
Ich kann nicht herausfinden, warum Django meine POST-Anfrage ablehnt, obwohl meine Ansicht dies tut dekoriert mit @require_POST und @login_required.
views.py
@login_required
@require_POST # Ensures that the view only handles POST requests
def deposit_view(request):
allowed_methods = ['POST'] # List of allowed HTTP methods
# Check if the method is allowed
if request.method not in allowed_methods:
return JsonResponse({'error': f"Invalid request method. Expected {', '.join(allowed_methods)}."}, status=405)
# Handle POST requests
if request.method == 'POST':
deposit_type = request.POST.get('deposit_type')
amount = request.POST.get('amount')
currency = request.POST.get('currency')
if deposit_type == 'crypto':
# Generate a random crypto address (as a placeholder example)
crypto_address = ''.join(random.choices(string.ascii_uppercase + string.digits, k=42))
return JsonResponse({'crypto_address': crypto_address, 'amount': amount})
elif deposit_type == 'fiat':
return JsonResponse({'message': 'Fiat deposit initiated successfully'})
else:
return JsonResponse({'error': 'Invalid deposit type'}, status=400)
deposit.html
Django-Formularübermittlung führt zu HTTP 405, aber POST ist korrekt definiert{% extends 'base.html' %}
{% block content %}
Deposit Funds
{% csrf_token %}
Deposit Type:
Cryptocurrency
Fiat
Amount:
Currency:
USD
EUR
Generate Crypto Address
Submit Deposit
{% endblock %}
Ich bin wirklich müde. Ich habe alles versucht, was ich weiß, um das Problem der Änderung der POST-Methode in GET zu lösen, aber jede Lösung, die ich gefunden habe, funktioniert nicht.
Wie behebe ich den HTTP 405-Fehler in Django beim Senden einer POST-Anfrage? ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post