Il faudrait déjà vérifier cela et bien vérifier l'utilisation de l'URL avec request_id.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
L'erreur "NoReverseMatch" indique qu'il y a une erreur dans la configuration de vos URLs, plus particulièrement dans la vue "care_request_detail". Il semble que vous essayez de passer un argument "request_id" qui n'est pas présent dans l'URL.
Dans votre fichier urls.py, vous avez défini une URL pour la vue "care_request_detail" qui attend un argument "request_id" de type "int". path('request_detail/<int:request_id>', blog.views.care_request_detail, name="request_detail"),
Dans votre vue "care_request_detail", vous utilisez cet argument pour récupérer un objet "PlantCareRequest" à partir de la base de données en utilisant la fonction get_object_or_404() : request = get_object_or_404(PlantCareRequest, pk=request_id, caretaker=request.user)
Il semblerait que vous n'avez pas passé d'argument "request_id" lorsque vous appelez la vue "care_request_detail", d'où l'erreur "Reverse for 'request_detail' with arguments '('',)' not found.".
Il y a plusieurs façons de résoudre ce problème, selon ce que vous voulez faire exactement.
Si vous voulez afficher une liste de demandes de soins pour l'utilisateur connecté, vous devriez utiliser une boucle pour afficher toutes les demandes dans une liste, et inclure un lien vers la page de détail pour chaque demande. Ce lien devrait inclure un paramètre "request_id" pour identifier la demande à afficher.
Si vous voulez afficher la page de détail pour une demande spécifique, vous devriez inclure un paramètre "request_id" dans l'URL lorsque vous appelez la vue "care_request_detail", par exemple en utilisant un lien HTML qui pointe vers l'URL "request_detail" avec l'argument "request_id" approprié.
Il vous faut donc revoir votre code pour vérifier comment vous appelez la vue "care_request_detail" et comment vous passez l'argument "request_id" pour identifier la demande de soins à afficher.
Voici un exemple de correction possible pour votre code:
Le problème avec votre code initial est que vous utilisez une variable request pour stocker l'objet de la demande de soins de plante, et une autre variable request pour l'objet HttpRequest de la requête courante. Cela crée une confusion et entraîne une erreur lorsque vous utilisez request.user ou request.POST dans vos fonctions de vue.
Dans l'exemple ci-dessus, j'ai changé le nom de la variable request pour request_obj dans la fonction care_request_detail pour éviter cette confusion. J'ai également déplacé la logique de mise à jour de l'état de la demande de soins de plante dans cette fonction pour s'assurer qu'elle ne soit exécutée que lorsque la méthode HTTP est POST.
D'accord merci beaucoup, j'ai reçu à résoudre le problème.
Bonjour,
Sujet résolu
Tu peux passer le sujet à "résolu" (bouton en haut à droite du sujet) et cliquer sur les pouces levés des messages qui t'ont aidé⋅e
Django NoReverseMatch at offre
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)