(function(A) {
"use strict";
A.module('Administrator',
[ 'ngCookies', 'ngRoute', 'ngResource', 'ui.layout', 'ui.bootstrap',
'ui.bootstrap.dropdown', 'ui.bootstrap.modal',
'ui.bootstrap.collapse', 'ui.grid', 'ui.grid.selection',
'ui.grid.resizeColumns', 'ui.grid.autoResize',
'ui.grid.selection', 'ui.grid.i18n', 'ui.layout',
'ui.grid.infiniteScroll'])
.config(function($interpolateProvider, $resourceProvider, $routeProvider) {
//Не хочу использовать Django-тег verbose
$interpolateProvider.startSymbol('{$');
$interpolateProvider.endSymbol('$}');
$resourceProvider.defaults.stripTrailingSlashes = false;//Иначе POST-запросы не работают, Django же
$routeProvider.when('/category/', {
templateUrl: '/administrator/template/grid/',
controller: 'CategoryGridController'
}).when('/tests/', {
templateUrl: '/administrator/template/grid/',
controller: 'TestsGridController'
});
})
.run(function($http, $cookies) {
$http.defaults.headers.post['X-CSRFToken'] = $cookies.csrftoken;
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
$http.defaults.headers.common['X-CSRFToken'] = $cookies.csrftoken;
});
}(this.angular, this.jQuery));
STATIC_URL='vendor'
http://mysite.ru/vendor/...
python manage.py collectstatic
{% load staticfiles %}
<link rel="stylesheet" href="{% static 'desktop/libs/bootstrap/css/bootstrap.css' %}"/>
(function(G) {
"use strict";
var $ = G.jQuery;
function csrfSafeMethod(method) {
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
function sameOrigin(url) {
var host = document.location.host, // host + port
protocol = document.location.protocol,
sr_origin = '//' + host,
origin = protocol + sr_origin;
// Allow absolute or scheme relative URLs to same origin
return (url == origin || url.slice(0, origin.length + 1) == origin
+ '/')
|| (url == sr_origin || url.slice(0, sr_origin.length + 1) == sr_origin
+ '/') ||
!(/^(\/\/|http:|https:).*/.test(url));
}
$.ajaxSetup({
beforeSend : function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && sameOrigin(settings.url)) {
xhr.setRequestHeader("X-CSRFToken", $.cookie('csrftoken'));
}
}
});
}(this));
@csrf_protect #Защищать так защищать
def email_check(request):
if request.method == "POST":
post_email = request.POST.get("email")
user_by_email = User.objects.get(email=post_email)
if user_by_email is not None: #Такой email уже использован
return HttpResponse(json.dumps({"success": False, "error": "Пользователь с таким email уже зарегистрирован"}), content_type="application/json")
else: #E-mail свободен
return HttpResponse(json.dumps({"success": True}), "application/json")
(function ($){
"use strict";
function myFunction(items){
return $(items).each(function(){
$(this).text("Hello, jQuery!");
});
}
$.fn.hellojQuery = myFunction;
}(jQuery));
$("div > strong").each(function(){
var strongStr = $(this).text(),
strongNum = (strongStr !== "" && strongStr !== undefined ? strongStr.valueOf() : undefined);
if (strongNum && strongNum > %минимум% && strongNum < %максимум%){
вызов_функции_которая_что_то_делает_с_элементом(this);
}
});