GOOGLE ADS

lundi 18 avril 2022

nameError : le nom de la requête n'est pas défini

J'essaie de créer une URL absolue avec reverse mais j'obtiens l'erreur ci-dessus.

Code:

def get_endpoint(payload):
url = request.build_absolute_uri(reverse("app-start-conversation"))
data = json.dumps(payload)
response = requests.post(url, data, headers=head)

URLs.py :

path(
"api/v2/app/startconversations",
views.StartConversation.as_view(),
name="app-start-conversation,
)

j'obtiens l'erreur

nameError: name 'request is not defined

Comment importer une demande ?

La raison pour laquelle j'ai besoin de l'URL complète est qu'avec l'inverse seul, lorsque j'exécute l'application localement, j'obtiens l'erreur suivante et je ne veux pas coder en dur 120.0.0.1:8000/ à l'URL.

requests.exceptions.MissingSchema: Invalid URL '/api/v2/app/startconversations': No schema supplied. Perhaps you meant http:///api/v2/app/startconversations?


Solution du problème

build_absolute_uri doit être appelé par une instance HttpRequest. Devrait être quelque chose comme:

from django.http import HttpRequest
def get_endpoint(payload):
request = HttpRequest()
url = request.build_absolute_uri(reverse("app-start-conversation"))
data = json.dumps(payload)
response = requests.post(url, data, headers=head)

Aucun commentaire:

Enregistrer un commentaire

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique ?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...