Все вышеперечисленные решения являются взломанными и багги. Даже не пытайтесь. Используйте другие библиотеки. Лучшее, что я нашел - http://sachinchoolur.github.io/lightslider Отлично работает с загрузкой, не добавляет junk html, высоко настраиваемый, отзывчивый, мобильный и т. Д. ...
$('.multi-item-carousel').lightSlider({
item: 4,
pager: false,
autoWidth: false,
slideMargin: 0
});
Поскольку вы, кажется, используете один из ListViews из Rest Framework, вы можете переопределить метод list () в своем классе и установить новые значения в результирующих данных, например:
def list(self, request, *args, **kwargs):
response = super(YourClass, self).list(request, args, kwargs)
# Add data to response.data Example for your object:
response.data['10_mi_count'] = 10 # Or wherever you get this values from
response.data['20_mi_count'] = 30
response.data['30_mi_count'] = 45
return response
Обратите внимание, что ваш класс должен наследовать ListModelMixin напрямую или через GenericView из API-интерфейсов Rest Framework ( http://www.django-rest-framework.org/api-guide/generic-views#listmodelmixin ). Я действительно не знаю, правильно ли это сделать, но это быстрое решение.
Надеюсь, что это поможет!
Используйте SerializerMethodField , как указано в этом решении .
Его можно использовать для добавления любых данных в сериализованное представление ваш объект. ( REST framework doc )
blockquote>Пример из документации:
from django.contrib.auth.models import User from django.utils.timezone import now from rest_framework import serializers class UserSerializer(serializers.ModelSerializer): days_since_joined = serializers.SerializerMethodField() class Meta: model = User def get_days_since_joined(self, obj): return (now() - obj.date_joined).days
В конце я просто создал настраиваемый сериализатор разбиения на страницы с таким полем:
class DistanceCountField(serializers.Field):
def to_native(self, value):
try:
distance_counts = {
'1_mile': self._count_lte_miles(value, 1),
'5_mile': self._count_lte_miles(value, 5),
'10_mile': self._count_lte_miles(value, 10),
'20_mile': self._count_lte_miles(value, 20),
}
except FieldError:
distance_counts = None
return distance_counts
def _count_lte_miles(self, value, miles):
meters = miles * 1609.344
return value.filter(distance__lte=meters).count()
class PaginatedCountSerializer(pagination.PaginationSerializer):
distance_counts = DistanceCountField(source='paginator.object_list')
class Meta:
# Class omitted, just a standard model serializer
object_serializer_class = MyModelSerializer
Я также добавил аннотацию расстояния к каждому объекту в наборе запросов для работы фильтра.