class TicketWriteSerializer(serializers.ModelSerializer):
author = serializers.PrimaryKeyRelatedField(
queryset=get_user_model().objects.all(),
default=serializers.CurrentUserDefault()
)
class Meta:
model = TicketModel
class TicketDetailReadSerializer(serializers.ModelSerializer):
author = UserSerializer()
class Meta:
model = TicketModel
def get_serialaizer_class(self):
if self.request.method == 'GET':
return TicketReadSerializer
return TicketWriteSerializer
passwd root
passwd -u root
(function(A) {
"use strict";
A.module('App').controller('Ctrl', ['$resource', '$scope', functino($resource, $scope) {
var r = $resource('/api/items/:id/', {
id: '@id'
}, {
update: {
method: 'PUT' //Необязательная фича для Django REST Framework
}
});
$scope.loading = true;
$scope.items = [];
r.query({
//А можно передать параметры, скажем, limit и offset
}, function(response) {
$scope.items = response;
$scope.loading = false;
}, function(response) {
$scope.loadign = false;
$scope.errors = response.data; // Так DRF отдаёт ошибки
});
}]);
}(this.angular));
<li ng-repeat="list in lists">
<a href="/">{{list.name}}</a>
</li>
<li ng-repeat="item in links">
<a ng-href="#/{{ item.link }}">{{ item.title }}</a>
</li>
links = [
{ link: 'contacts', title: 'Контакты' },
{ link: 'profile', title: 'Профиль' }
];
urlpatterns = [
url(r'^(?P<path>[-\w/]+)/$', TemplateView.as_view()),
]
function makeCounter(){
//Эта переменная видна только здесь
var currentCount = 0;
//Эта функция - тоже только здесь, зато она видит currentCount
function getCountValue(){
currentCount += 1;
return currentCount;
}
//Возвращаем саму функцию, а не её значение
return getCountValue;
}
//counter = getCountValue
var counter = makeCounter();
counter(); //На самом деле - вызов getCountValue()
(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));