Soy bastante nuevo en Django Rest y angularjs. Estoy tratando de crear una vista de Django que tendrá una función y esta función debe llamarse mediante un botón en angular js. ¿Por favor, puede alguien ayudarme? Gracias
Esto podría ayudar: Django - Tutorial angular
La respuesta general sería: 1) Usando, por ejemplo, Django REST, exponga su método (punto final) 2) Desde la aplicación Angular, envíe una solicitud al punto final expuesto anteriormente.
digamos que este es su punto final de Django/python api (suponga que el archivo del controlador es aleatorio.py)
def getRandomInfo(request): try: result = database.getRandomInfo() return JsonResponse(result, content_type="application/json", safe=False) except Exception as e: import traceback traceback.print_exc(e) return JsonResponse({error:'sorry'}, content_type="application/json", safe=False)A través de angular, siempre que haya resuelto todas las dependencias y tenga una aplicación y/o controlador angular en funcionamiento configurado en su html/js
puedes llamar a la API usando el siguiente código
app.controller("appControllerName", function ($scope, $http) { $http.get("{% url 'getRandomInfo' %}") .success(function (response, status) { response_data = response $scope.data = response_data; }).error(function (response, status) { $scope.status = status; }); }si observa {% url 'getRandomInfo' %} , esto está definido en su urls.py , tendrá que agregar una línea como esta allí donde getRandomInfo tendrá que ser el 'nombre' de la url
url(r'^random/getRandomInfo/$',random.getRandomInfo, name='getRandomInfo'),Aquí, el nombre de su controlador es aleatorio y una función dentro de ese controlador es def getRandomInfo, por lo que django permite dos formas de acceder a este punto final, ya sea a través de la url r'^random/getRandomInfo/$ (sí, la expresión regular está permitida aquí) o a través del nombre como se indica en el ejemplo aquí.
Buena suerte :)